{ ****************************************************************************** }
{ * memory Rasterization                                                       * }
{ * by QQ 600585@qq.com                                                        * }
{ ****************************************************************************** }
{ * https://zpascal.net                                                        * }
{ * https://github.com/PassByYou888/zAI                                        * }
{ * https://github.com/PassByYou888/ZServer4D                                  * }
{ * https://github.com/PassByYou888/PascalString                               * }
{ * https://github.com/PassByYou888/zRasterization                             * }
{ * https://github.com/PassByYou888/CoreCipher                                 * }
{ * https://github.com/PassByYou888/zSound                                     * }
{ * https://github.com/PassByYou888/zChinese                                   * }
{ * https://github.com/PassByYou888/zExpression                                * }
{ * https://github.com/PassByYou888/zGameWare                                  * }
{ * https://github.com/PassByYou888/zAnalysis                                  * }
{ * https://github.com/PassByYou888/FFMPEG-Header                              * }
{ * https://github.com/PassByYou888/zTranslate                                 * }
{ * https://github.com/PassByYou888/InfiniteIoT                                * }
{ * https://github.com/PassByYou888/FastMD5                                    * }
{ ****************************************************************************** }

{$IF Defined(LARGE_RASTER_FONT_Build_In)}
{$RESOURCE MemoryRaster_LargeFont.RES}
{$ELSEIF Defined(SMALL_RASTER_FONT_Build_In)}
{$RESOURCE MemoryRaster_DefaultFont.RES}
{$ELSE}


type
  T_LittleFont_PackageBuffer = array [0 .. 30730] of byte;

const
  // compiled LittleFont.zfont package
  C_LittleFontPackageBuffer: T_LittleFont_PackageBuffer = (
    $D0, $2C, $0B, $00, $00, $00, $00, $00, $78, $DA, $EC, $7D, $0B, $68, $14, $D7, $F7, $FF, $CC, $3E, $92, $6C, $A2, $31, $9A, $68, $A2, $B5, $1A, $8D, $8F, $9A, $B6, $BA, $B5, $DA, $A6, $5A, $9B, $5A, $AD, $56, $AD, $18, $6B, $2D, $F5, $81, $5A, $D2, $8A, $0F, $54, $54, $34, $B4, $58, $B1, $58, $51, $14, $17, $45, $69, $11, $45, $51, $C4, $A5, $22, $8A, $28, $45, $0C, $A2, $84,
    $A2, $88, $88, $22, $12, $14, $91, $20, $22, $FE, $0D, $41, $42, $08, $61, $09, $CB, $E1, $7F, $CF, $7D, $CC, $DC, $99, $B9, $B3, $3B, $9B, $AC, $D6, $FE, $BE, $F3, $81, $D6, $C9, $EC, $9D, $D7, $67, $EE, $3D, $F7, $DC, $3B, $F7, $7C, $4E, $99, $A6, $69, $FF, $8F, $FC, $F7, $9D, $AE, $69, $E5, $41, $CD, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8,
    $F0, $E1, $C3, $C7, $BF, $06, $BD, $EF, $07, $5F, $D5, $D4, $4C, $7D, $AF, $8F, $EE, $73, $91, $2D, $8C, $3C, $D0, $09, $1C, $89, $FD, $23, $BC, $1E, $95, $1F, $8F, $BF, $ED, $73, $E7, $86, $CA, $3B, $84, $CD, $DB, $CB, $DE, $EF, $DB, $77, $E4, $AC, $03, $ED, $00, $77, $86, $A9, $4A, $85, $8A, $22, $F6, $5D, $67, $A1, $31, $E0, $D3, $A7, $44, $F0, $00, $E1, $34, $56, $62, $98,
    $82, $31, $37, $00, $B6, $28, $EC, $40, $35, $C4, $EC, $BB, $0A, $12, $B0, $F6, $8D, $7F, $BE, $BC, $3C, $B1, $15, $28, $CC, $4B, $51, $AC, $47, $36, $2F, $DA, $E3, $01, $C0, $B5, $12, $CB, $AE, $AF, $93, $70, $26, $E0, $85, $55, $6D, $36, $40, $59, $37, $ED, $79, $75, $2C, $56, $21, $DA, $4C, $6D, $6D, $B1, $7B, $C9, $01, $C7, $9B, $1A, $66, $93, $B7, $1D, $28, $B2, $BF, $DB,
    $3A, $82, $A9, $AE, $C7, $C5, $00, $1E, $5D, $F8, $33, $76, $F8, $EF, $67, $00, $A7, $5C, $4B, $AD, $03, $38, $61, $54, $A5, $B9, $D7, $D6, $90, $ED, $C8, $A1, $0B, $83, $BB, $4A, $6A, $33, $40, $9D, $BD, $66, $0E, $6C, $83, $13, $9E, $58, $D5, $AE, $C0, $5D, $BD, $5B, $9C, $36, $91, $86, $52, $CD, $CD, $74, $07, $5C, $B5, $FC, $D8, $A3, $A8, $28, $D7, $F8, $AB, $3C, $89, $56,
    $BF, $B1, $B2, $EF, $89, $E6, $DE, $56, $52, $9F, $90, $FD, $B5, $D2, $8E, $DC, $5E, $D2, $61, $9A, $76, $08, $0C, $74, $46, $DD, $6E, $A4, $04, $7F, $AE, $E2, $7F, $8C, $26, $DB, $33, $35, $ED, $2A, $E9, $64, $42, $5D, $6B, $FE, $F7, $AD, $77, $C4, $D1, $3F, $81, $A7, $F5, $C0, $6A, $51, $52, $75, $B8, $0A, $5F, $91, $5B, $AD, $13, $7F, $5C, $27, $7F, $60, $8B, $0B, $B4, $83,
    $C9, $EA, $59, $48, $9A, $D5, $30, $30, $F5, $12, $EB, $3C, $CF, $CD, $67, $AF, $ED, $12, $24, $CE, $BC, $64, $E4, $54, $DB, $49, $7D, $51, $61, $36, $E4, $75, $CD, $58, $A4, $ED, $97, $9E, $62, $4F, $1C, $3E, $2C, $29, $1F, $1D, $8D, $46, $47, $96, $BA, $7F, $85, $1A, $82, $07, $7D, $CD, $FF, $98, $49, $B6, $D7, $6B, $1A, $DE, $5B, $CF, $2E, $B1, $BA, $0F, $60, $BB, $6A, $FF,
    $74, $68, $0B, $78, $61, $55, $5B, $0C, $50, $EC, $AD, $5A, $3E, $07, $48, $F2, $3A, $54, $09, $E2, $B2, $4B, $AA, $66, $09, $96, $AA, $01, $16, $18, $A5, $47, $3D, $33, $6B, $18, $AB, $2F, $79, $B7, $7A, $6B, $C1, $DF, $F0, $EF, $CD, $76, $52, $CF, $99, $55, $73, $58, $BB, $38, $2A, $F9, $3E, $DF, $55, $0F, $7D, $D2, $DF, $5D, $80, $9C, $26, $51, $C8, $FF, $88, $34, $43, $82,
    $1C, $B3, $00, $E0, $74, $97, $48, $1D, $0A, $66, $2F, $DE, $BB, $62, $A0, $F4, $2E, $9B, $20, $EA, $89, $55, $FD, $16, $5C, $F7, $66, $03, $A6, $93, $47, $5D, $69, $AD, $AA, $9C, $4C, $CA, $6A, $5E, $BB, $74, $A2, $2F, $00, $EC, $AC, $32, $F4, $9C, $F8, $A9, $B5, $0F, $18, $16, $8D, $BE, $6B, $FE, $15, $49, $90, $F2, $17, $7E, $FE, $F5, $06, $D6, $72, $DE, $35, $FD, $03, $45,
    $5E, $FA, $B4, $1F, $D7, $9A, $B5, $23, $54, $41, $8F, $2D, $E9, $A2, $DF, $48, $5A, $59, $25, $23, $67, $CE, $0B, $BC, $91, $EF, $03, $6B, $7F, $66, $BF, $FC, $08, $AB, $3C, $B1, $AA, $95, $02, $7C, $E7, $B9, $B2, $76, $84, $AD, $55, $55, $62, $F5, $38, $80, $C1, $57, $7F, $24, $F3, $E5, $F7, $A5, $91, $FC, $B2, $EA, $C3, $C9, $0C, $6C, $DB, $4F, $E4, $B8, $61, $E2, $15, $4E,
    $17, $F5, $23, $F2, $7A, $9D, $8E, $1E, $00, $4D, $CC, $BC, $FE, $0D, $F0, $60, $D9, $39, $80, $76, $68, $60, $3F, $8D, $71, $70, $E8, $C2, $AA, $B6, $5A, $36, $87, $1C, $7D, $BE, $FE, $3D, $B6, $71, $34, $A9, $5A, $CB, $F6, $FE, $5C, $21, $57, $D6, $05, $BC, $AA, $26, $0B, $6C, $AC, $4E, $90, $ED, $3B, $D6, $E5, $6B, $39, $FC, $8F, $B0, $D1, $4A, $C7, $AC, $8E, $C5, $D6, $8E,
    $B7, $90, $3C, $60, $D1, $EE, $D8, $86, $F1, $86, $B1, $BA, $48, $FC, $6E, $56, $D6, $EC, $C1, $9A, $21, $37, $4D, $EB, $8F, $72, $64, $E9, $E3, $FF, $27, $C0, $6B, $E4, $09, $80, $A3, $A4, $F9, $4D, $26, $F7, $B2, $84, $FD, $54, $E1, $99, $D5, $40, $23, $5C, $B6, $ED, $AA, $65, $4D, $B7, $7E, $16, $ED, $B7, $D7, $4B, $95, $B5, $35, $C0, $AA, $6A, $9D, $66, $65, $35, $E7, $A5,
    $E4, $4C, $60, $D7, $D1, $EE, $A0, $62, $52, $33, $3B, $6B, $C7, $1C, $D3, $A8, $FE, $CD, $76, $B5, $8C, $E7, $3B, $AE, $01, $3C, $61, $AF, $82, $EC, $9D, $C5, $F6, $11, $13, $D2, $73, $DA, $86, $BA, $EF, $5C, $5D, $C0, $88, $30, $35, $45, $D9, $61, $F5, $47, $80, $31, $B4, $6F, $20, $2E, $5D, $80, $DD, $81, $F0, $3F, $C7, $C3, $6F, $1E, $59, $D5, $CA, $01, $66, $5B, $F7, $D4,
    $81, $05, $15, $52, $65, $9D, $49, $1F, $3D, $19, $B1, $B1, $7A, $58, $76, $7C, $7F, $21, $E5, $96, $DA, $AF, $B2, $C1, $3C, $9F, $78, $4D, $3D, $9B, $8D, $5D, $5F, $B2, $3D, $5B, $C8, $E6, $3C, $DC, $58, $69, $92, $04, $70, $86, $95, $B9, $D0, $F3, $F5, $B0, $4A, $9E, $BE, $3F, $B7, $69, $55, $FC, $FC, $6D, $BC, $C6, $2C, $87, $EF, $69, $FD, $32, $31, $1D, $0E, $4A, $7F, $C9,
    $3D, $D4, $AF, $90, $B0, $0E, $4C, $36, $6F, $2C, $C1, $F7, $42, $D8, $1B, $A0, $FD, $00, $70, $58, $AA, $AC, $4D, $7A, $99, $A5, $AA, $6A, $39, $65, $65, $39, $DA, $07, $00, $AB, $CD, $5D, $8F, $48, $09, $7B, $BF, $FD, $11, $3E, $F6, $A9, $F9, $0B, $1B, $40, $98, $4E, $4D, $27, $DB, $6D, $13, $72, $C2, $A3, $49, $97, $90, $CC, $A7, $BB, $FA, $E2, $AF, $7B, $23, $FA, $12, $F2,
    $CF, $36, $7E, $51, $E2, $A6, $FE, $50, $A0, $0F, $21, $1D, $58, $5B, $5F, $7A, $B7, $31, $09, $F8, $C2, $83, $35, $04, $57, $B2, $CA, $2A, $F6, $10, $7A, $27, $B4, $53, $96, $AA, $00, $F6, $F0, $9F, $EE, $C0, $08, $67, $A5, $93, $10, $97, $9D, $DE, $A7, $70, $DE, $DA, $31, $D1, $FF, $9F, $A3, $67, $23, $27, $4F, $C8, $96, $35, $BA, $DB, $52, $55, $59, $7B, $6D, $96, $27, $14,
    $D0, $26, $02, $9E, $A2, $82, $01, $37, $75, $1C, $2D, $7C, $8A, $BF, $AE, $25, $1B, $97, $68, $B9, $71, $64, $AB, $1C, $37, $DE, $26, $1B, $CB, $D9, $B1, $DF, $52, $A7, $0A, $5F, $CB, $41, $FE, $DE, $43, $70, $9F, $B2, $15, $38, $4F, $AC, $43, $80, $F6, $5E, $12, $AA, $E5, $E6, $95, $25, $56, $57, $03, $0C, $41, $F3, $04, $BC, $71, $EF, $07, $18, $2B, $7A, $F6, $4E, $BC, $83,
    $45, $0D, $26, $9A, $E0, $A5, $F4, $D7, $36, $F9, $3C, $C4, $82, $28, $46, $8C, $A4, $21, $4F, $A2, $C3, $2F, $C8, $93, $2A, $6B, $23, $B1, $B5, $1B, $9C, $5E, $B3, $E4, $C4, $E4, $91, $07, $6C, $66, $B5, $8C, $02, $5F, $C1, $3B, $E4, $DF, $3F, $D8, $39, $9E, $F1, $5D, $E8, $C0, $5C, $61, $47, $34, $02, $DC, $E5, $07, $8F, $E7, $23, $05, $B3, $EA, $97, $F1, $4E, $28, $9F, $EC,
    $9D, $F8, $3A, $58, $9D, $06, $F0, $05, $1B, $AE, $D1, $91, $94, $DE, $01, $C0, $7B, $DE, $63, $B0, $55, $F3, $6A, $57, $E9, $58, $BB, $C3, $E1, $BE, $E8, $5B, $01, $46, $12, $53, $71, $46, $BA, $DD, $E9, $6C, $E0, $68, $EB, $89, $DE, $B3, $98, $04, $6A, $E7, $9A, $6C, $AC, $AE, $00, $E1, $03, $6A, $1B, $C9, $E6, $48, $6C, $21, $E4, $DF, $03, $65, $14, $C4, $52, $83, $98, $9D,
    $BC, $CC, $FB, $B4, $AF, $1C, $37, $49, $DA, $0E, $F6, $15, $7D, $CB, $24, $E4, $BC, $02, $56, $DF, $66, $2D, $BE, $0F, $C0, $07, $F8, $67, $14, $4C, $BF, $CA, $74, $7D, $BC, $B0, $4A, $9A, $70, $DC, $32, $E2, $59, $71, $23, $21, $D5, $88, $22, $D9, $67, $05, $58, $63, $9B, $62, $7C, $0E, $8F, $03, $5A, $8F, $EA, $EA, $EA, $12, $83, $D5, $17, $58, $38, $1E, $8F, $3F, $E2, $AC,
    $1E, $31, $47, $8F, $53, $81, $B5, $81, $3E, $56, $93, $C4, $1A, $FC, $48, $52, $31, $92, $27, $A9, $EB, $51, $67, $BF, $C9, $9F, $53, $CD, $AE, $64, $91, $D5, $40, $12, $DA, $49, $43, $CF, $05, $58, $86, $7F, $3D, $04, $F8, $91, $19, $FD, $36, $58, $A4, $65, $C2, $2A, $76, $4D, $13, $CC, $BF, $46, $24, $AC, $4F, $5C, $64, $19, $60, $D9, $AB, $EA, $0E, $EA, $25, $60, $37, $54,
    $63, $B5, $AB, $DC, $47, $8B, $D0, $C1, $3C, $08, $67, $BE, $9A, $37, $DC, $32, $05, $AB, $A5, $84, $CF, $C6, $3E, $5A, $01, $BE, $04, $51, $B7, $65, $8B, $74, $E4, $75, $B0, $AA, $FD, $C9, $6E, $F0, $22, $B4, $BF, $A5, $E5, $91, $16, $C2, $CC, $E3, $C4, $76, $D5, $4B, $4D, $C9, $2A, $71, $23, $5A, $0D, $B2, $82, $AD, $C4, $FD, $1D, $59, $46, $1E, $ED, $4B, $D6, $CE, $74, $4B,
    $EB, $FE, $D3, $7A, $E4, $08, $DA, $5D, $D7, $C0, $33, $C1, $AA, $86, $15, $BA, $D8, $CA, $EA, $29, $F2, $6F, $81, $F9, $62, $AA, $38, $AB, $B1, $A8, $01, $FA, $1B, $79, $35, $1D, $F9, $BC, $C7, $60, $3D, $A8, $BE, $3C, $B6, $84, $77, $84, $A7, $01, $70, $E0, $38, $AD, $46, $42, $C9, $AB, $60, $95, $F8, $DB, $CF, $88, $31, $CF, $27, $16, $BC, $8D, $74, $AD, $E4, $45, $8F, $1B,
    $34, $F3, $26, $E9, $18, $02, $99, $B2, $4A, $86, $F1, $C2, $81, $C2, $CE, $F9, $3E, $BB, $D1, $72, $95, $6F, $68, $3D, $4D, $B0, $09, $9E, $06, $71, $FE, $7B, $8C, $C1, $EA, $4E, $60, $8D, $47, $62, $75, $9B, $E9, $F6, $E2, $26, $F6, $6D, $3D, $C9, $BF, $2B, $6C, $33, $AD, $64, $D7, $46, $31, $4E, $65, $A6, $16, $6B, $F6, $34, $D6, $04, $48, $03, $FA, $E4, $75, $F4, $56, $B4,
    $1F, $DD, $87, $76, $71, $ED, $D5, $86, $83, $63, $D0, $B7, $44, $34, $8C, $51, $15, $4D, $CD, $AA, $F6, $B9, $E1, $3F, $68, $4B, $98, $B3, $48, $6E, $74, $4E, $7A, $56, $49, $9F, $F6, $8E, $A6, $9D, $81, $DD, $BA, $C1, $EA, $28, $EC, $6D, $22, $16, $56, $BF, $34, $1C, $50, $BD, $85, $58, $CE, $20, $EF, $5B, $EF, $5B, $CF, $8E, $D5, $77, $2E, $DB, $FC, $8B, $1B, $85, $99, $C2,
    $23, $D3, $66, $90, $91, $5D, $F0, $F5, $B0, $5A, $D4, $69, $19, $C6, $14, $8C, $AB, $AE, $AE, $CC, $57, $17, $4D, $C3, $AA, $76, $16, $9A, $C3, $46, $05, $DB, $4E, $2B, $21, $DC, $49, $CB, $2A, $19, $98, $ED, $25, $36, $87, $50, $DB, $8F, $78, $5C, $7C, $30, $71, $1F, $E7, $A7, $4B, $65, $56, $7B, $00, $EF, $F9, $A9, $0B, $B0, $55, $BC, $0F, $51, $A5, $C5, $B4, $1B, $D9, $F3,
    $17, $EB, $01, $89, $11, $7A, $44, $A7, $3A, $DA, $F8, $EC, $CF, $F0, $04, $1F, $48, $56, $55, $4B, $28, $7A, $25, $AC, $E2, $54, $80, $F0, $A0, $25, $54, $ED, $C9, $9C, $D5, $1E, $09, $E4, $87, $5B, $BE, $17, $A1, $E0, $49, $24, $62, $6B, $50, $0B, $8D, $18, $E3, $CE, $2A, $E9, $21, $5F, $84, $E8, $57, $10, $D6, $4A, $0C, $DF, $04, $FF, $58, $5F, $FB, $B3, $E1, $9C, $1E, $C4,
    $3D, $7B, $A6, $CC, $C0, $B9, $EC, $76, $66, $61, $0B, $B1, $AB, $8F, $8F, $2E, $2A, $2A, $A9, $9C, $7B, $9C, $B9, $C4, $58, $FC, $8F, $B7, $23, $F9, $95, $D7, $C5, $D0, $55, $2B, $BE, $4B, $98, $9E, $F3, $35, $19, $3E, $3E, $75, $F9, $78, $FC, $BE, $18, $5B, $6D, $20, $FF, $8E, $CF, $0E, $AD, $53, $F0, $FD, $5A, $DD, $A8, $FC, $A3, $70, $32, $73, $56, $B5, $39, $00, $EF, $1A,
    $55, $06, $87, $38, $BF, $71, $AE, $6A, $DD, $59, $25, $A3, $7B, $EC, $67, $D6, $90, $71, $05, $21, $E2, $E9, $41, $F1, $56, $E5, $56, $4A, $59, $0D, $3F, $34, $77, $44, $A5, $5B, $B7, $14, $D2, $DE, $97, $F6, $FC, $CD, $FB, $48, $FD, $C3, $BD, $F7, $13, $89, $FB, $FB, $AB, $74, $F7, $0F, $5B, $EA, $31, $63, $77, $30, $98, $B4, $D4, $E4, $AF, $E6, $DC, $C6, $C0, $DF, $93, $70,
    $32, $D0, $05, $56, $B5, $AB, $D8, $EF, $D0, $79, $00, $4A, $EA, $C7, $DA, $9E, $74, $AC, $0E, $24, $23, $4B, $C3, $97, $35, $EC, $2A, $CE, $B0, $5E, $37, $D9, $61, $E7, $CC, $3D, $CD, $FF, $7E, $3C, $D4, $28, $35, $F6, $99, $8D, $55, $AD, $F2, $A9, $D8, $51, $E7, $F9, $9B, $FA, $2B, $61, $55, $0B, $2C, $EB, $C0, $49, $E2, $23, $3F, $CE, $AC, $9E, $BD, $E2, $08, $19, $F1, $3D,
    $9F, $A8, $2A, $56, $19, $5F, $92, $E6, $44, $BD, $93, $F0, $3B, $1F, $45, $C4, $E2, $BF, $E0, $37, $BB, $F7, $77, $C7, $4F, $6C, $18, $17, $B2, $CE, $65, $BE, $25, $59, $D5, $68, $D4, $98, $3E, $D5, $A2, $D1, $5E, $F2, $A7, $B3, $EF, $F7, $C5, $E3, $7F, $AC, $AC, $32, $AD, $7C, $D9, $E2, $43, $F1, $E3, $1B, $2A, $E5, $2A, $A7, $8F, $D9, $74, $3C, $1E, $DF, $F1, $C3, $78, $E3,
    $03, $A1, $3E, $F2, $A7, $3F, $E3, $27, $B6, $54, $E7, $79, $7F, $FE, $B7, $A2, $12, $CA, $B3, $37, $7B, $1D, $FA, $AA, $C1, $7C, $5B, $E7, $26, $74, $F9, $AB, $E9, $62, $80, $41, $9A, $0F, $69, $CC, $F9, $D6, $47, $A4, $4B, $FC, $78, $44, $EF, $EE, $2C, $46, $D1, $2B, $2A, $22, $3E, $95, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F,
    $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $91, $39, $16, $D7, $D5, $D5, $2D, $F7, $E5, $4B, $B3, $0B, $5C, $B6, $72, $3C, $FC, $BF, $F6, $D4, $65, $D3, $5E, $35, $A9, $C9, $99, $FF, $6B, $9C, $E6, $C4, $E8, $5A, $F5, $9C, $22, $13, $7C, $A5, $74, $58, $FC, $CD, $96, $4B, $84, $A7, $6D, $DE, $E8, $58, $CB, $52, $7C, $29, $5D, $80, $F7, $EC, $78, $FC, $58,
    $F1, $7F, $88, $8F, $F9, $4D, $4D, $DD, $97, $3A, $89, $B6, $26, $3E, $C3, $7F, $6B, $A5, $65, $5B, $3C, $38, $A1, $46, $FC, $4D, $D7, $98, $0D, $68, $85, $17, $09, $B8, $6B, $6D, $C9, $03, $DB, $A4, $65, $66, $DA, $88, $DD, $8D, $4D, $17, $17, $E6, $BC, $6E, $1E, $BA, $26, $37, $E1, $76, $D4, $5E, $78, $C9, $36, $26, $ED, $B9, $DD, $D4, $F4, $F7, $D2, $AE, $AC, $C0, $F9, $01,
    $9A, $FB, $B2, $2A, $DB, $7B, $D0, $97, $18, $55, $73, $67, $78, $5F, $A3, $AE, $F6, $9E, $0A, $F0, $7C, $76, $7F, $5A, $57, $F5, $27, $B0, $5E, $0B, $DF, $B3, $8A, $AB, $8C, $4A, $48, $F1, $52, $39, $67, $D9, $3B, $68, $1F, $93, $4D, $CA, $42, $45, $45, $8E, $D7, $A4, $F7, $93, $9B, $4C, $D7, $E4, $26, $5C, $8F, $FA, $47, $84, $E1, $F1, $85, $D8, $ED, $FD, $33, $BE, $E7, $E5,
    $D0, $D6, $DB, $D6, $AF, $48, $8B, $00, $43, $37, $E1, $89, $58, $CE, $3A, $12, $5A, $C8, $A3, $7C, $0A, $CF, $A5, $E2, $13, $65, $71, $04, $AA, $CE, $71, $F9, $2C, $4A, $1D, $C8, $CB, $D6, $5E, $C8, $D1, $A6, $34, $1C, $B8, $D5, $F8, $03, $23, $54, $52, $D7, $EC, $49, $37, $F1, $F0, $FB, $D3, $65, $16, $3F, $3C, $9C, $B0, $E8, $04, $78, $90, $9B, $60, $FC, $B4, $3D, $BE, $B8,
    $E9, $9D, $B4, $47, $25, $44, $78, $59, $D3, $CD, $ED, $75, $B8, $F8, $FD, $62, $A6, $A4, $7E, $6E, $0F, $82, $88, $49, $92, $23, $5A, $B0, $1E, $9A, $8D, $95, $DC, $B5, $B0, $9B, $FC, $BF, $08, $C0, $F4, $90, $E6, $00, $7C, $6E, $FC, $81, $FA, $22, $E7, $F2, $09, $53, $DB, $00, $1E, $9A, $24, $14, $D3, $E7, $79, $6A, $FC, $5D, $6E, $06, $99, $61, $04, $A4, $7C, $3A, $27, $C2,
    $97, $84, $0D, $AA, $97, $68, $8C, $DB, $D4, $17, $3C, $C8, $4D, $48, $D6, $ED, $56, $41, $EA, $A3, $C2, $62, $61, $B6, $46, $EF, $EC, $1E, $C0, $E3, $0C, $49, $2D, $EA, $64, $71, $BF, $52, $DB, $C2, $E8, $A4, $0F, $78, $4D, $3A, $0B, $AD, $66, $45, $DE, $01, $8B, $D9, $35, $0D, $3B, $F3, $23, $24, $46, $9B, $47, $6E, $25, $A4, $32, $32, $2F, $02, $8C, $33, $76, $7F, $C3, $9E,
    $C5, $38, $4F, $A9, $19, $3F, $C5, $E2, $29, $53, $2C, $E5, $D4, $E9, $9A, $CF, $DB, $0F, $68, $90, $B4, $3B, $AB, $1E, $E4, $26, $E4, $B5, $BE, $22, $4A, $5E, $75, $54, $DE, $A4, $4D, $27, $89, $17, $38, $D6, $E8, $AE, $30, $94, $60, $57, $86, $AC, $5E, $82, $5B, $8E, $27, $21, $B4, $26, $69, $CC, $97, $1E, $87, $B6, $52, $B9, $16, $7F, $CF, $6A, $97, $60, $F5, $17, $68, $93,
    $6E, $A8, $04, $E0, $25, $37, $C7, $15, $E4, $BE, $8C, $FD, $D7, $68, $9C, $91, $19, $C0, $D2, $4B, $26, $B2, $00, $A0, $33, $C5, $ED, $2D, $C5, $15, $B4, $E4, $D1, $FB, $35, $92, $8D, $CF, $DC, $59, $4D, $0F, $72, $C4, $19, $5D, $0F, $16, $2E, $43, $5A, $5D, $F5, $E4, $82, $75, $49, $CE, $3C, $5B, $6D, $BE, $A8, $A1, $B1, $0B, $9E, $76, $B9, $51, $2D, $65, $5A, $CF, $10, $5A,
    $47, $69, $18, $D8, $98, $90, $56, $42, $6B, $1B, $E0, $57, $8D, $06, $36, $B1, $07, $D2, $F7, $C1, $73, $39, $C2, $FC, $10, $18, $4A, $42, $7A, $02, $3A, $05, $71, $B9, $E4, $B6, $BE, $31, $22, $A3, $35, $B6, $6C, $DD, $A0, $A4, $48, $E8, $67, $A8, $FB, $A9, $04, $F9, $99, $36, $43, $0C, $2E, $68, $64, $1E, $0B, $C1, $2D, $F2, $D7, $64, $AB, $E0, $84, $4D, $C6, $42, $D3, $F2,
    $C7, $2E, $FD, $3D, $16, $5B, $F5, $49, $8E, $C1, $2A, $5B, $8E, $BE, $4E, $28, $30, $0C, $8F, $46, $59, $BC, $60, $2E, $39, $0F, $AB, $28, $39, $77, $8D, $FA, $CC, $58, $A5, $51, $E6, $C9, $D3, $E3, $EC, $37, $D6, $FB, $9B, $DA, $45, $EF, $B9, $F6, $07, $DB, $58, $30, $B5, $0D, $01, $42, $6B, $A2, $9C, $74, $5C, $09, $8B, $C9, $9D, $44, $A3, $6B, $46, $F3, $DE, $2A, $70, $0A,
    $1A, $E5, $B0, $0C, $D2, $96, $51, $48, $A8, $B0, $34, $57, $EF, $8D, $81, $85, $C2, $1C, $A3, $30, $40, $04, $57, $F1, $87, $25, $53, $6A, $04, $0E, $F6, $35, $22, $55, $54, $C0, $30, $8B, $29, $6C, $F3, $00, $57, $09, $D0, $95, $D1, $9B, $0E, $19, $0B, $ED, $B6, $A1, $0E, $B4, $D4, $CA, $6A, $54, $88, $2A, $35, $88, $17, $5A, $61, $84, $6C, $A0, $11, $6F, $DB, $78, $19, $60,
    $C7, $4B, $C6, $EA, $A0, $A9, $DF, $FC, $D2, $62, $57, $77, $D2, $F4, $9F, $B9, $A9, $9F, $66, $8B, $16, $CD, $8B, $D1, $15, $F6, $CF, $6C, $A1, $FC, $82, $D6, $7A, $42, $EB, $49, $6E, $07, $4C, $BF, $29, $09, $1F, $63, $40, $18, $ED, $CE, $43, $F5, $F0, $8F, $E5, $65, $CD, $02, $E2, $72, $15, $B0, $B0, $88, $8A, $2D, $A6, $64, $45, $0C, $C5, $4F, $BE, $96, $62, $4D, $74, $16,
    $0D, $D1, $3B, $16, $EB, $41, $23, $CD, $4E, $A7, $1E, $E8, $B2, $25, $FD, $9F, $27, $38, $C1, $4A, $56, $9D, $32, $16, $72, $B1, $85, $16, $56, $67, $88, $B8, $42, $27, $AB, $48, $78, $63, $44, $3B, $41, $5A, $85, $6E, $56, $36, $D4, $6E, $B0, $A8, $A4, $85, $EB, $E1, $EE, $C4, $3E, $E5, $35, $F8, $0E, $E2, $55, $92, $75, $18, $D0, $FC, $40, $67, $7E, $CD, $06, $B5, $7D, $A9,
    $C7, $DB, $79, $DF, $B6, $B7, $16, $92, $BF, $FE, $C5, $42, $43, $73, $6F, $C2, $59, $6B, $DF, $4D, $AA, $E7, $C0, $C0, $63, $F6, $1C, $C5, $8B, $00, $5F, $00, $7D, $BC, $0E, $0C, $2E, $C3, $88, $E8, $DD, $92, $89, $EB, $45, $4D, $66, $0D, $7D, $A2, $03, $EE, $AC, $36, $F1, $EE, $37, $F4, $27, $3D, $ED, $26, $3A, $30, $21, $40, $63, $B7, $8C, $46, $9E, $86, $45, $9F, $66, $93,
    $B1, $D0, $3B, $F7, $55, $F5, $09, $87, $0A, $16, $60, $60, $61, $40, $62, $35, $EF, $B1, $70, $50, $9C, $AC, $9E, $65, $2E, $E1, $23, $6B, $D8, $F0, $28, $5B, $F8, $52, $F0, $26, $AC, $66, $E6, $2D, $32, $0B, $2B, $D1, $89, $4F, $78, $8D, $9D, $94, $60, $0E, $25, $69, $8C, $F3, $ED, $46, $35, $42, $31, $00, $E5, $A6, $D8, $A6, $D4, $45, $7F, $FD, $88, $F8, $A3, $D8, $36, $0A,
    $1E, $C0, $9F, $B8, $3F, $14, $09, $99, $8E, $67, $A7, $3E, $97, $BC, $6B, $EC, $0E, $F2, $6A, $8C, $46, $33, $88, $FC, $49, $8C, $73, $8B, $A9, $36, $82, $FE, $6B, $1F, $1A, $F1, $77, $8D, $EA, $27, $6C, $75, $F7, $00, $C8, $B1, $18, $EA, $35, $F8, $09, $7B, $59, $87, $5C, $7A, $2B, $95, $8C, $85, $F8, $79, $13, $B7, $91, $58, $0D, $C9, $5B, $D8, $42, $3A, $CE, $16, $36, $E8,
    $71, $B0, $AA, $B3, $98, $79, $5D, $88, $FA, $68, $65, $CF, $2E, $C4, $E3, $37, $ED, $DD, $DB, $71, $AA, $A2, $C0, $51, $38, $0F, $7F, $BF, $B9, $6A, $FC, $5B, $1F, $5D, $14, $62, $13, $84, $D5, $6F, $6C, $4F, $52, $E1, $50, $FF, $B0, $A8, $E9, $30, $85, $95, $3E, $2F, $28, $17, $BD, $51, $18, $E6, $5C, $4F, $D1, $4E, $CE, $22, $53, $E5, $28, $7F, $10, $30, $59, $5D, $4E, $6C,
    $09, $39, $66, $3B, $D9, $3B, $80, $9F, $E3, $0E, $9E, $B3, $10, $68, $EB, $8E, $5A, $24, $56, $EC, $9D, $15, $AD, $25, $FA, $8F, $18, $EF, $FE, $9D, $1C, $FD, $64, $63, $55, $29, $63, $C1, $31, $96, $37, $78, $F3, $79, $9E, $F0, $FB, $70, $B0, $8A, $5E, $DE, $69, $DA, $9B, $72, $29, $0E, $11, $1D, $DF, $26, $D1, $A8, $BD, $DD, $6E, $8B, $89, $EF, $F1, $D5, $79, $56, $EC, $E5,
    $BB, $46, $63, $B4, $3F, $53, $61, $2D, $C5, $2A, $52, $EA, $17, $B6, $E9, $1C, $05, $93, $A1, $3F, $CE, $C6, $14, $B4, $C1, $86, $F2, $73, $F0, $98, $12, $FD, $31, $39, $15, $E9, $EE, $3B, $74, $E2, $2B, $B5, $6B, $26, $AB, $0F, $58, $64, $1A, $3E, $DC, $0F, $FC, $70, $F2, $52, $07, $D3, $81, $0D, $7C, $6A, $1D, $9B, $A9, $58, $FD, $AD, $00, $A3, $1F, $6F, $F7, $D1, $DD, $59,
    $55, $CB, $58, $A0, $01, $EC, $55, $52, $B6, $D4, $C1, $2A, $C0, $4F, $6A, $56, $23, $EC, $12, $03, $8C, $AA, $19, $F9, $E5, $68, $3C, $7E, $78, $D5, $18, $8B, $A9, $D3, $15, $83, $96, $D0, $88, $65, $7B, $77, $4E, $37, $EE, $E8, $8E, $E4, $57, $3A, $1A, $9F, $DB, $A4, $C2, $3B, $09, $A6, $AD, $B4, $1D, $ED, $4F, $38, $C9, $EE, $E1, $7B, $C2, $E3, $40, $F4, $9F, $48, $A5, $BD,
    $89, $AC, $B2, $F1, $59, $4F, $3E, $00, $46, $FF, $EA, $1E, $3F, $FE, $28, $3E, $E7, $65, $54, $00, $38, $8E, $9A, $59, $33, $52, $B2, $DA, $84, $03, $CA, $5F, $75, $7A, $43, $C7, $D5, $AC, $2A, $65, $2C, $B4, $E2, $4D, $CD, $B2, $D6, $13, $F9, $E7, $7A, $45, $C5, $FB, $93, $A9, $85, $5E, $A2, $64, $35, $CC, $B4, $48, $C6, $4B, $23, $96, $AE, $61, $1D, $A9, $5C, $99, $B2, $3A,
    $21, $99, $64, $FE, $4B, $07, $D5, $3C, $3A, $CD, $FA, $58, $62, $BF, $46, $45, $B1, $C1, $0E, $07, $38, $8A, $D2, $58, $A3, $68, $99, $2F, $C5, $79, $6E, $9A, $42, $09, $BB, $C8, $43, $10, $96, $BF, $7C, $01, $C9, $60, $8D, $65, $D6, $41, $3D, $20, $7A, $39, $9A, $BF, $96, $AD, $6A, $56, $55, $32, $16, $DA, $1A, $9B, $82, $96, $51, $D5, $51, $09, $A7, $33, $A4, $EC, $AD, $5A,
    $A8, $BE, $C3, $F7, $19, $8F, $30, $1C, $6D, $99, $07, $84, $67, $C0, $EA, $6C, $48, $0C, $13, $EE, $7D, $1E, $BD, $FD, $3A, $EE, $40, $F5, $AF, $C6, $19, $44, $E2, $63, $FE, $82, $66, $B4, $1F, $2D, $84, $73, $13, $FB, $50, $2A, $0A, $25, $53, $F8, $94, $C1, $46, $80, $F1, $9F, $00, $F4, $FC, $05, $E0, $5D, $D2, $47, $8F, $76, $BF, $3D, $1A, $03, $7C, $3E, $8F, $DF, $A9, $39,
    $3C, $73, $B2, $6A, $97, $B1, $98, $8B, $DC, $6D, $9F, $3A, $2E, $BA, $D9, $CE, $AA, $76, $9E, $4F, $FE, $38, $59, $C5, $60, $F8, $AB, $C1, $DF, $89, $05, $13, $72, $51, $5D, $44, $3D, $76, $C4, $99, $B0, $5A, $0B, $CD, $A5, $C6, $18, $29, $44, $77, $50, $56, $F7, $91, $2E, $88, $B2, $3A, $1B, $60, $31, $EA, $2B, $85, $85, $C9, $33, $71, $42, $4C, $3D, $42, $F5, $1F, $64, $44,
    $31, $92, $58, $CD, $5A, $D3, $B1, $55, $00, $65, $2C, $D6, $B1, $CD, $85, $20, $E9, $31, $59, $59, $55, $C8, $58, $E8, $AD, $40, $67, $4E, $98, $0F, $6A, $65, $75, $3F, $DF, $D3, $20, $F4, $EE, $2A, $05, $AB, $74, $1E, $E8, $F9, $0B, $78, $F4, $DE, $B2, $FB, $15, $DD, $61, $B5, $4F, $A7, $FD, $86, $52, $B3, $FA, $33, $3C, $29, $34, $07, $53, $E8, $A8, $AD, $62, $0A, $A8, $A4,
    $AE, $96, $4D, $C2, $6A, $4A, $36, $6A, $82, $49, $3E, $BC, $AC, $B4, $B0, $9A, $0C, $88, $A9, $F0, $25, $09, $D2, $DF, $05, $12, $D0, $B2, $36, $A5, $68, $F3, $87, $00, $7C, $36, $17, $E5, $84, $5E, $1A, $F5, $E7, $0F, $CB, $DD, $29, $64, $2C, $90, $68, $26, $51, $F2, $99, $9D, $55, $1D, $DD, $B4, $BE, $DC, $3B, $A5, $3E, $E1, $2D, $63, $88, $32, $CF, $A9, $BB, $D7, $35, $7C,
    $20, $CF, $E5, $A5, $63, $55, $8F, $C1, $2D, $23, $7C, $59, $EF, $A4, $4E, $E2, $71, $E6, $9C, $11, $63, $39, $70, $18, $69, $40, $18, $93, $BF, $F9, $7B, $11, $AF, $FE, $2B, $A9, $32, $23, $98, $66, $DA, $79, $C3, $ED, $FB, $9C, $90, $40, $C9, $24, $B5, $E6, $AE, $18, $1E, $0D, $3A, $BC, $35, $D7, $FA, $7F, $7C, $60, $E2, $5D, $76, $52, $89, $99, $F5, $16, $A5, $8A, $9F, $C1,
    $32, $7F, $E1, $94, $B1, $28, $14, $F2, $35, $43, $DA, $6C, $AC, $E2, $34, $25, $B4, $EA, $74, $C6, $9F, $8E, $46, $02, $67, $24, $91, $81, $C9, $1D, $D9, $61, $55, $AB, $4A, $C2, $64, $E7, $DE, $02, $50, $54, $A2, $C0, $49, $B8, $2C, $19, $F2, $3F, $61, $27, $69, $E3, $09, $26, $2E, $B8, $8E, $18, $C9, $B0, $A4, $19, $CD, $5E, $49, $8B, $E9, $BA, $4F, $36, $BE, $DB, $8C, $A5,
    $0D, $4D, $43, $9D, $2C, $23, $96, $3F, $8F, $8C, $48, $6F, $58, $FE, $2F, $E6, $6F, $A1, $7D, $DE, $80, $61, $A8, $46, $FD, $D4, $74, $69, $50, $94, $A6, $F9, $A3, $A2, $A2, $C1, $5F, $51, $F6, $9D, $32, $16, $3A, $26, $3C, $58, $54, $D0, $B3, $56, $EE, $AD, $9E, $D4, $D5, $D5, $ED, $A5, $62, $6C, $54, $8D, $05, $D5, $85, $6E, $57, $7D, $7E, $CF, $22, $DD, $10, $FA, $9C, $58,
    $97, $87, $67, $56, $77, $93, $54, $62, $AC, $5B, $61, $9D, $6E, $1D, $5E, $F5, $9D, $8C, $63, $C2, $E6, $C5, $23, $CB, $64, $66, $83, $97, $E1, $84, $3C, $17, $43, $7A, $89, $EF, $8B, $0E, $72, $C3, $3C, $07, $A5, $2C, $B1, $6B, $F8, $8B, $6A, $4A, $7C, $62, $0C, $A1, $3F, $93, $AA, $0F, $9B, $97, $19, $01, $5C, $BC, $27, $48, $A7, $DD, $C2, $C6, $E0, $23, $24, $FF, $9F, $1D,
    $75, $D2, $78, $4F, $6D, $FD, $A4, $3B, $69, $B5, $CE, $03, $38, $65, $2C, $36, $8B, $3F, $CF, $B6, $38, $FD, $55, $A6, $A1, $9B, $23, $E4, $99, $77, $36, $82, $24, $85, $4C, $1A, $DC, $C0, $6C, $7C, $17, $8A, $9C, $87, $AB, $11, $B7, $E1, $95, $C4, $F7, $50, $D8, $6D, $ED, $19, $AB, $B0, $79, $DD, $2E, $10, $16, $74, $BF, $A6, $4D, $AD, $FB, $42, $D7, $C6, $6F, $FA, $81, $CF,
    $10, $7E, $6F, $BA, $53, $EC, $23, $50, $B1, $E8, $CE, $D9, $08, $F3, $38, $6E, $D1, $17, $95, $9B, $C0, $C9, $2B, $F9, $FF, $FC, $0D, $FF, $CA, $EF, $E3, $1F, $8B, $B8, $CC, $C0, $66, $EB, $9C, $95, $43, $C6, $22, $70, $91, $FD, $B5, $23, $70, $C7, $CE, $EA, $5F, $22, $AB, $C4, $28, $36, $97, $BA, $05, $FB, $2D, $93, $D5, $2F, $00, $F2, $B3, $F3, $BD, $ED, $E3, $A6, $27, $72,
    $9D, $94, $A5, $F3, $E4, $62, $25, $0E, $93, $D0, $6F, $A8, $98, $61, $CD, $07, $AE, $84, $29, $63, $70, $34, $6A, $7E, $17, $1C, $48, $BC, $1E, $4A, $71, $18, $FD, $1F, $5A, $B6, $97, $E1, $09, $69, $6F, $1F, $41, $5B, $2A, $FF, $DF, $18, $69, $1F, $88, $1F, $5B, $55, $6E, $9F, $FE, $99, $B0, $E5, $54, $FC, $F0, $9A, $89, $A2, $ED, $38, $65, $2C, $C6, $FE, $1E, $3F, $B6, $AC,
    $98, $4E, $A3, $E6, $F2, $69, $59, $82, $51, $B2, $F2, $7A, $41, $ED, $B1, $53, $EB, $CA, $A8, $86, $86, $59, $AB, $56, $A4, $FC, $38, $91, $11, $F4, $EE, $CB, $23, $3C, $90, $3E, $77, $FD, $97, $F1, $A7, $F4, $89, $ED, $DF, $C7, $37, $A4, $3F, $11, $5D, $D9, $7F, $39, $D3, $D0, $DD, $EC, $49, $D8, $64, $01, $21, $D2, $2D, $5C, $A3, $F3, $57, $BD, $D6, $2E, $FB, $0F, $B3, $CA,
    $A7, $71, $DF, $14, $BC, $8B, $A6, $FF, $62, $EC, $E8, $0B, $F0, $9A, $E0, $E2, $8D, $44, $45, $45, $8F, $37, $EA, $7E, $3E, $32, $5C, $E8, $FF, $B9, $95, $6A, $AF, $12, $B9, $0B, $AE, $24, $E0, $F9, $F1, $39, $3D, $7C, $2A, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $C7, $9B, $0A, $DD, $A7, $20, $EB, $18,
    $DB, $08, $1D, $5B, $F3, $35, $AD, $60, $CA, $1B, $7F, $AB, $C1, $5D, $8F, $70, $E1, $77, $E8, $E0, $C3, $9A, $37, $FC, $4E, $C7, $B1, $65, $57, $2B, $66, $3E, $E6, $AB, $84, $DE, $18, $04, $E2, $12, $E8, $D2, $D8, $15, $6C, $81, $1D, $26, $C7, $ED, $DF, $8D, $13, $5F, $DD, $9A, $D7, $95, $57, $FA, $F1, $A6, $D8, $DE, $15, $A3, $BC, $35, $EC, $A3, $F0, $60, $F9, $15, $B6, $CE,
    $B2, $5F, $37, $EE, $34, $5C, $56, $96, $F5, $3C, $19, $13, $ED, $7A, $08, $BF, $B3, $C0, $E8, $23, $8A, $2C, $83, $99, $60, $40, $73, $C7, $9C, $8C, $0F, $AA, $6A, $83, $D6, $73, $CD, $00, $4D, $43, $3C, $D5, $88, $7D, $61, $4D, $FB, $F8, $01, $29, $AE, $5A, $66, $17, $F4, $6A, $73, $37, $74, $EF, $41, $D5, $98, $6F, $63, $B5, $AC, $03, $EE, $87, $34, $AD, $BC, $13, $6E, $74,
    $AB, $2F, $88, $D4, $C3, $99, $0C, $17, $C1, $7F, $01, $B0, $3D, $A0, $69, $15, $4F, $52, $04, $D9, $3A, $91, $AB, $6C, $14, $15, $B6, $50, $46, $77, $3C, $97, $42, $43, $BD, $09, $57, $0C, $38, $DE, $D4, $30, $9B, $94, $0B, $A4, $C8, $A9, $B6, $DB, $A6, $DD, $11, $2E, $A5, $6C, $E6, $96, $76, $B3, $83, $D5, $8F, $C0, $BD, $8C, $AC, $40, $A0, $83, $2F, $99, $2E, $4E, $19, $D7,
    $EB, $ED, $9D, $B6, $D8, $59, $CD, $29, $EA, $E5, $0C, $BC, $C9, $2D, $EA, $35, $52, $CA, $85, $E9, $4D, $B8, $A2, $9C, $2E, $F8, $6B, $AC, $EC, $7B, $A2, $D9, $3D, $22, $25, $70, $DB, $A6, $88, $92, $35, $B7, $27, $0E, $8D, $99, $C8, $A4, $14, $01, $B4, $B0, $AD, $1B, $74, $A9, $B2, $15, $36, $D9, $8A, $14, $3B, $F1, $D2, $D7, $AC, $61, $B7, $FA, $F4, $FB, $74, $C5, $E9, $70,
    $CB, $83, $CF, $E6, $69, $D7, $3E, $16, $7B, $1C, $12, $14, $B5, $E6, $8A, $CB, $1A, $63, $31, $F3, $25, $48, $9C, $79, $29, $E5, $58, $6C, $B0, $44, $62, $09, $14, $CB, $AC, $D6, $BA, $C6, $EE, $75, $A1, $EF, $B9, $0B, $D7, $F4, $8C, $58, $E5, $92, $1E, $A7, $9D, $97, $B6, $CB, $56, $B8, $EF, $44, $6C, $B7, $06, $33, $17, $DC, $14, $4F, $24, $2D, $93, $ED, $F5, $40, $EC, $BC,
    $2E, $9A, $94, $43, $82, $42, $C9, $6A, $DE, $AD, $DE, $5A, $90, $26, $D5, $A3, $61, $0B, $2E, $AC, $6A, $AB, $5E, $11, $AB, $5A, $9F, $24, $5F, $7C, $EC, $AD, $33, $16, $4B, $F2, $F5, $36, $00, $FB, $22, $15, $BB, $6C, $85, $FB, $4E, $8D, $2D, $69, $97, $58, $CD, $23, $86, $7A, $C7, $DB, $91, $82, $31, $A4, $06, $1F, $33, $76, $3E, $37, $9F, $F3, $BE, $30, $AC, $76, $09, $0A,
    $25, $AB, $0C, $3D, $27, $7E, $CA, $17, $DD, $22, $AB, $91, $48, $C8, $5E, $7F, $82, $6D, $AF, $88, $55, $0C, $39, $CB, $60, $CD, $76, $03, $CF, $0F, $BD, $51, $11, $D9, $6F, $97, $AD, $70, $DF, $49, $D3, $25, $3F, $93, $59, $BD, $08, $49, $16, $79, $A5, $6F, $31, $A3, $6B, $71, $01, $FB, $F9, $B7, $C2, $2B, $E9, $83, $AE, $72, $B9, $A3, $14, $AC, $5A, $6E, $9B, $45, $B1, $EE,
    $B2, $F6, $B1, $8B, $4C, $56, $F5, $50, $28, $44, $C3, $34, $C8, $BF, $EE, $16, $3B, $50, $E1, $06, $AB, $EB, $17, $4E, $66, $B2, $64, $73, $1A, $7D, $86, $BC, $3F, $C0, $AA, $2D, $44, $BB, $15, $BB, $6C, $85, $EB, $4E, $72, $D1, $26, $98, $1B, $93, $58, $8D, $02, $D0, $BC, $E9, $81, $10, $C6, $EC, $74, $30, $23, $83, $F1, $69, $97, $75, $6A, $C2, $3B, $78, $44, $1F, $2D, $33,
    $66, $75, $2C, $B6, $76, $7C, $28, $25, $AB, $36, $2D, $0B, $29, $69, $DF, $15, $B9, $89, $45, $AC, $BD, $55, $28, $6D, $0A, $C6, $22, $70, $83, $AD, $E7, $3D, $2C, $89, $4B, $A4, $45, $88, $3C, $5F, $7C, $5D, $A7, $11, $6C, $2D, $C1, $21, $5B, $E1, $BA, $13, $D3, $03, $1F, $D0, $64, $56, $AF, $D2, $60, $E9, $CF, $EF, $60, $0B, $28, $11, $39, $7F, $B7, $B0, $48, $ED, $02, $80,
    $AB, $4B, $C8, $26, $17, $AA, $98, $C4, $83, $02, $84, $AF, $AD, $64, $D5, $AE, $65, $21, $B1, $0A, $2F, $64, $AF, $A7, $3E, $43, $56, $C3, $35, $6E, $28, $71, $B8, $A0, $A3, $32, $32, $18, $E4, $5E, $0F, $2A, $12, $2D, $3A, $64, $2B, $5C, $77, $6A, $2B, $E1, $4E, $40, $66, $35, $9F, $CA, $76, $6C, $E1, $B9, $6D, $AF, $93, $43, $10, $84, $BE, $67, $AC, $79, $7C, $DD, $97, $C6,
    $45, $F0, $01, $81, $C0, $7A, $57, $56, $1D, $5A, $16, $AC, $B7, $D2, $F3, $A6, $A1, $35, $92, $B3, $F6, $2E, $CB, $90, $55, $CF, $E8, $CF, $56, $9C, $8E, $A8, $73, $83, $64, $13, $03, $5F, $63, $07, $D2, $42, $DB, $55, $01, $0B, $C8, $10, $12, $80, $0A, $D9, $0A, $97, $9D, $DA, $18, $68, $EB, $A9, $C9, $AC, $7E, $80, $F1, $2D, $83, $91, $A8, $EA, $1A, $1A, $5E, $89, $35, $3B,
    $8F, $13, $70, $11, $A0, $10, $E5, $C4, $EA, $B1, $E4, $47, $48, $C2, $A9, $F9, $0B, $69, $E5, $1B, $E6, $CA, $AA, $5D, $CB, $C2, $F0, $01, $50, $4E, $4B, $96, $D0, $FA, $E8, $55, $B1, $9A, $CF, $42, $EB, $6A, $5C, $2D, $86, $79, $9D, $71, $A4, $87, $C1, $28, $1C, $9A, $1A, $BC, $CE, $92, $38, $59, $25, $5B, $E1, $B2, $B3, $B0, $9D, $AA, $8F, $48, $AC, $2E, $C4, $08, $A1, $AD,
    $22, $1E, $F5, $7D, $16, $13, $59, $CA, $82, $CE, $73, $68, $10, $7C, $2B, $93, $6C, $D3, $9B, $44, $02, $F0, $B5, $C2, $58, $2B, $2D, $80, $5D, $CB, $C2, $F4, $AC, $AE, $F2, $88, $4B, $8E, $61, $AF, $8A, $D5, $1C, $A6, $88, $D0, $2B, $EA, $86, $72, $51, $F1, $F6, $01, $3C, $1F, $1D, $20, $3E, $E4, $13, $7C, $FF, $05, $BD, $3F, $05, $F8, $EB, $23, $61, $4F, $14, $B2, $15, $EA,
    $9D, $81, $3B, $4C, $F8, $40, $62, $B5, $0E, $9F, $F9, $16, $CA, $31, $20, $DE, $62, $31, $52, $18, $F8, $45, $6A, $EE, $04, $DA, $88, $79, $B2, $7A, $0C, $44, $FF, $83, $DD, $8C, $C8, $7A, $9D, $D2, $07, $18, $6B, $C6, $02, $83, $61, $92, $E4, $32, $1F, $BF, $2A, $56, $7B, $71, $85, $A7, $B4, $38, $0E, $70, $33, $97, $35, $A2, $8D, $74, $C7, $08, $59, $11, $4D, $21, $5B, $A1,
    $DE, $79, $90, $DF, $B8, $85, $D5, $24, $25, $AE, $4C, $F4, $FD, $15, $BC, $1A, $11, $56, $4F, $00, $94, $18, $AC, $AE, $30, $27, $94, $36, $F2, $C4, $EC, $AE, $AC, $CA, $5A, $16, $26, $AB, $A7, $AD, $CE, $73, $6D, $0A, $56, $63, $02, $53, $BA, $E0, $03, $44, $53, $06, $E9, $5B, $5E, $6B, $0B, $75, $16, $50, $69, $8B, $CE, $58, $9D, $90, $FA, $20, $95, $6C, $85, $72, $E7, $5C,
    $78, $14, $B2, $B3, $BA, $81, $D7, $55, $46, $D8, $60, $56, $69, $2B, $68, $C8, $69, $30, $49, $23, $CE, $09, $AB, $6D, $1A, $9B, $A6, $E3, $CE, $C7, $54, $B2, $39, $C9, $95, $55, $9B, $96, $85, $C1, $6A, $B8, $93, $B5, $1E, $0F, $3E, $80, $0E, $8A, $69, $82, $C2, $26, $37, $D8, $C2, $CD, $F6, $4A, $71, $91, $A9, $70, $57, $C4, $51, $E0, $08, $FE, $59, $0E, $C6, $A9, $3E, $35,
    $EF, $4F, $25, $5B, $A1, $DA, $49, $AC, $F8, $21, $E6, $8A, $90, $7D, $87, $C9, $3F, $78, $8A, $79, $28, $E1, $F0, $33, $C0, $85, $A0, $96, $4B, $DB, $7C, $21, $B7, $AB, $AB, $30, $86, $18, $FD, $7F, $8C, $BA, $D4, $98, $34, $00, $77, $B7, $AB, $79, $FD, $50, $B2, $6A, $D7, $B2, $10, $AC, $06, $30, $CA, $F3, $37, $8B, $F5, $CB, $8C, $55, $CF, $53, $47, $49, $7A, $BF, $9E, $06,
    $AB, $A6, $1C, $24, $5C, $D0, $B5, $0B, $30, $DD, $FC, $59, $25, $5B, $A1, $DA, $E9, $68, $42, $58, $71, $2B, $B1, $3F, $EF, $2B, $3A, $BF, $3A, $56, $9B, $D0, $07, $38, $86, $35, $FA, $2D, $B6, $8D, $03, $EB, $53, $E6, $4D, $4C, $E7, $EA, $9B, $8B, $CC, $EE, $C7, $60, $D5, $A1, $65, $81, $AC, $56, $57, $57, $AF, $40, $0F, $A6, $4D, $0A, $54, $9D, $9D, $6A, $14, $50, $2B, $D0,
    $05, $3D, $59, $72, $DB, $9E, $8E, $8A, $48, $5A, $A9, $03, $12, $C4, $55, $FA, $16, $9E, $9B, $55, $55, $29, $5B, $A1, $DC, $A9, $0B, $1C, $04, $98, $AE, $33, $2D, $27, $62, $21, $7E, $E5, $8F, $D8, $A0, $E9, $2D, $BC, $43, $22, $EF, $AE, $23, $9C, $A0, $93, $64, $1F, $70, $53, $B2, $CD, $8C, $DD, $DF, $C6, $E5, $2D, $66, $80, $A1, $76, $BA, $8C, $C5, $FC, $2B, $B4, $2C, $A4,
    $51, $40, $47, $B9, $E4, $F8, $35, $C1, $AB, $E9, $AD, $3E, $05, $37, $A1, $20, $FB, $08, $D8, $1C, $DE, $50, $E7, $47, $08, $B5, $F6, $A2, $CD, $4F, $29, $5B, $A1, $DC, $29, $BF, $4E, $C3, $C2, $9F, $A5, $92, $02, $85, $F3, $EA, $36, $8C, $C3, $3B, $7A, $C7, $18, $5B, $9D, $44, $81, $0C, $4D, $FB, $9B, $BF, $52, $34, $29, $DB, $18, $21, $C4, $5B, $4B, $06, $35, $26, $33, $C0,
    $05, $53, $FF, $06, $26, $FB, $E8, $D4, $B2, $30, $59, $3D, $59, $68, $1B, $7F, $BF, $0A, $56, $CB, $12, $70, $D3, $A3, $90, $3F, $19, $D9, $3E, $33, $0C, $30, $2A, $23, $76, $E0, $5F, $43, $93, $74, $AE, $4D, $29, $5B, $A1, $DC, $69, $E0, $32, $1F, $FB, $B3, $CF, $02, $86, $60, $60, $7E, $B3, $B0, $48, $5C, $FD, $67, $18, $93, $0C, $DD, $89, $BB, $7A, $00, $EF, $F9, $A9, $0B,
    $40, $55, $83, $50, $21, $E2, $59, $58, $38, $C7, $B4, $96, $3B, $B5, $2C, $90, $55, $32, $9E, $F9, $E9, $13, $4B, $0F, $12, $7E, $F9, $6A, $58, $ED, $DD, $0C, $D7, $BD, $CA, $8B, $F6, $49, $02, $BC, $E4, $3D, $5D, $DE, $7A, $DA, $98, $D6, $8C, $5C, $99, $64, $15, $58, $29, $5B, $A1, $DC, $C9, $6C, $C3, $7B, $D3, $91, $E7, $D6, $A5, $63, $78, $7B, $DE, $4F, $6A, $11, $B5, $2F,
    $03, $1F, $73, $55, $10, $F6, $1E, $51, $D5, $6B, $11, $AA, $7F, $B5, $E5, $71, $B7, $0C, $47, $5C, $53, $66, $A0, $F6, $61, $3B, $A3, $E8, $02, $0A, $51, $CD, $AC, $18, $B1, $0C, $67, $B2, $4B, $D9, $D0, $CA, $AE, $65, $A1, $9E, $5F, $3D, $20, $77, $47, $55, $C4, $FC, $E3, $05, $9F, $63, $3F, $50, $D8, $1D, $52, $87, $B7, $C1, $11, $EF, $2A, $EE, $A3, $F1, $66, $1F, $AF, $FD,
    $72, $FA, $72, $7C, $90, $5D, $97, $D9, $1D, $51, $31, $43, $A5, $6C, $85, $5A, $CB, $82, $A2, $AF, $E9, $91, $70, $FB, $42, $5A, $6F, $E2, $40, $ED, $4A, $C2, $56, $D2, $90, $7D, $0C, $DD, $37, $CD, $07, $AF, $E8, $E1, $87, $A6, $49, $E1, $6E, $5D, $AF, $84, $B9, $EB, $3B, $B6, $CB, $A1, $65, $A1, $64, $F5, $33, $78, $15, $DF, $02, $F4, $4D, $D0, $FA, $45, $46, $E3, $05, $E3,
    $E5, $26, $63, $A4, $52, $7C, $8C, $2A, $B0, $37, $E8, $6B, $55, $CA, $56, $A8, $B5, $2C, $DC, $6E, $66, $3D, $3F, $F5, $1D, $E9, $89, $C2, $62, $EE, $E9, $BE, $B1, $33, $F7, $34, $DF, $F5, $78, $A8, $61, $C5, $04, $F9, $AD, $E2, $1D, $3A, $B4, $2C, $54, $AC, $F6, $4D, $BC, $12, $56, $4F, $77, $D4, $66, $2A, $33, $16, $1A, $F5, $4D, $6D, $ED, $0F, $5F, $0E, $E6, $A6, $38, $BF,
    $8C, $BB, $E4, $4A, $D9, $0A, $B5, $96, $85, $BB, $93, $31, $63, $4F, $FC, $E4, $06, $AB, $F1, $7D, $02, $C9, $3D, $F1, $13, $EB, $2C, $3B, $CB, $16, $1F, $8A, $1F, $DF, $50, $29, $CF, $EB, $0F, $5B, $71, $38, $7E, $64, $4B, $95, $D4, $EC, $6C, $5A, $16, $C3, $0D, $D5, $0C, $CB, $D7, $07, $99, $D5, $62, $79, $90, $DE, $8D, $F4, $26, $25, $01, $ED, $0D, $47, $5F, $D4, $C7, $7B,
    $35, $08, $DC, $74, $66, $9D, $F8, $1F, $C1, $E2, $57, $A7, $3B, $62, $F9, $54, $D2, $FB, $7F, $8A, $D5, $1D, $F1, $78, $8E, $E6, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $47, $16, $10, $AA, $D9, $BB, $6D, $8C, $4F, $83, $2B, $06, $62, $E8, $85, $F5, $7B, $7D, $5E, $24, $92, $66,
    $95, $56, $98, $7E, $76, $FF, $D5, $67, $CF, $15, $43, $9F, $83, $2D, $F7, $6D, $13, $5D, $64, $9E, $0A, $F3, $E1, $64, $6E, $FF, $84, $B7, $75, $C7, $AF, $13, $74, $1D, $45, $EE, $9B, $71, $2B, $27, $6C, $B4, $A6, $67, $B5, $0E, $13, $71, $DE, $EA, $7E, $60, $68, $96, $F1, $1D, $A6, $55, $DD, $09, $15, $6F, $C6, $DD, $CC, $8C, $C7, $4F, $F5, $CE, $84, $D5, $CF, $E0, $EE, $7B,
    $73, $52, $C6, $F2, $FF, $2B, $F8, $02, $9E, $07, $B4, $35, $A9, $B2, $6C, $A7, $44, $9F, $3D, $7C, $9D, $9C, $56, $BC, $67, $7D, $FA, $E2, $FD, $DE, $1B, $6D, $91, $72, $C8, $C1, $15, $DC, $EE, $C5, $0D, $56, $17, $1C, $6B, $68, $D8, $2F, $82, $36, $2A, $6B, $6B, $8D, $85, $6A, $FA, $51, $5C, $4D, $FE, $61, $F6, $F8, $88, $2C, $B8, $D8, $F4, $F0, $D0, $C4, $4C, $F5, $26, $F2,
    $BE, $FE, $E3, $6A, $C3, $1F, $F3, $84, $25, $D2, $1F, $91, $1B, $0F, $77, $A4, $8E, $33, $D1, $BF, $38, $15, $8F, $2B, $2F, $F4, $89, $B1, $94, $7A, $22, $3C, $48, $77, $E9, $AA, $A7, $34, $B5, $F9, $57, $E6, $1E, $5C, $73, $DB, $EC, $81, $55, $B6, $5E, $89, $AD, $30, $CC, $EF, $80, $AB, $52, $99, $B2, $CF, $3E, $F2, $68, $BF, $72, $8A, $8A, $D2, $2E, $55, $59, $D8, $C9, $2E,
    $D5, $34, $34, $23, $52, $E7, $26, $F9, $92, $AA, $1F, $C5, $A3, $42, $6B, $50, $5B, $0C, $77, $52, $38, $2F, $DF, $B6, $D8, $52, $7C, $99, $58, $CC, $13, $1A, $E2, $AA, $F9, $74, $2B, $C1, $96, $8A, $D5, $5C, $BF, $98, $96, $14, $33, $83, $49, $45, $6C, $CA, $14, $06, $AB, $33, $07, $14, $7D, $09, $B0, $97, $6E, $9F, $85, $64, $91, $EB, $11, $AE, $08, $CC, $6E, $A4, $0B, $28,
    $BF, $15, $6B, $EA, $D8, $52, $EB, $16, $6B, $C2, $B9, $FD, $D0, $B9, $A2, $24, $9C, $53, $71, $1C, $E0, $23, $BA, $A3, $96, $97, $3A, $B7, $76, $B8, $78, $7E, $10, $EA, $25, $85, $9D, $62, $85, $F7, $1C, $73, $A5, $DA, $B7, $BC, $D4, $1D, $58, $AA, $05, $5F, $1A, $EB, $B8, $42, $60, $CB, $E8, $96, $DB, $E1, $48, $9C, $66, $62, $B7, $C8, $FE, $AE, $ED, $4D, $91, $53, $DA, $78,
    $8C, $5B, $5F, $CD, $7B, $2E, $0B, $3A, $61, $78, $CC, $39, $B3, $88, $5D, $99, $C2, $B4, $AB, $65, $03, $56, $03, $4B, $41, $58, $6D, $49, $B3, $EC, $AA, $65, $61, $83, $29, $5B, $F1, $B0, $87, $CC, $2A, $45, $A3, $10, $24, $FA, $16, $9E, $96, $C6, $62, $3B, $D7, $7C, $A2, $4F, $85, $64, $1F, $93, $55, $B6, $A2, $75, $94, $8D, $55, $8C, $26, $A0, $59, $E7, $73, $09, $BD, $0F,
    $07, $EA, $C1, $09, $49, $9E, $8B, $51, $C3, $D0, $86, $8E, $B0, $56, $03, $4D, $BA, $0B, $AB, $DA, $79, $68, $BA, $E6, $C6, $EA, $55, $63, $39, $7E, $03, $A4, $D1, $3F, $FB, $0D, $E0, $39, $F1, $3E, $7B, $5B, $A2, $FB, $8C, $10, $47, $0A, $BB, $32, $85, $C1, $2A, $0D, $4E, $3A, $89, $BE, $6B, $5E, $3B, $5C, $D7, $DD, $8F, $70, $B3, $96, $CD, $12, $3B, $21, $3B, $AB, $00, $13,
    $98, $89, $E8, $80, $01, $3A, $74, $DE, $EB, $84, $9D, $DA, $72, $38, $63, $63, $15, $60, $9A, $85, $55, $8C, $6E, $B9, $45, $6F, $65, $BA, $A8, $B3, $BB, $81, $25, $E7, $65, $7C, $AC, $D1, $02, $CF, $45, $AE, $70, $27, $AB, $43, $AB, $F4, $5A, $27, $AB, $23, $68, $AC, $50, $07, $EC, $E6, $51, $43, $09, $38, $42, $FE, $9F, $C2, $70, $DD, $E3, $F1, $21, $CF, $E4, $05, $9D, $4F,
    $2D, $2E, $BC, $5D, $99, $C2, $64, $35, $7E, $8D, $34, $F5, $FB, $3A, $8D, $CB, $94, $43, $E5, $5D, $B4, $2C, $EC, $C0, $15, $D4, $F7, $C6, $F5, $E9, $47, $CD, $66, $9D, $C1, $EA, $86, $A2, $D2, $11, $2B, $B0, $29, $B2, $8A, $F9, $35, $1C, $24, $EF, $AF, $49, $8B, $40, $52, $0B, $B4, $D3, $58, $37, $7C, $F0, $68, $51, $BF, $E1, $B5, $54, $EC, $A3, $BF, $C4, $6A, $3E, $4A, $35,
    $B0, $B7, $B9, $5D, $04, $5A, $EF, $97, $94, $0A, $2A, $20, $19, $61, $BE, $80, $60, $B5, $BE, $88, $43, $DC, $95, $82, $D5, $5A, $65, $B8, $65, $0A, $7D, $A7, $46, $66, $18, $31, $FA, $7C, $BE, $B1, $F3, $1F, $39, $33, $AF, $43, $99, $C2, $E2, $59, $5D, $C3, $60, $87, $09, $D6, $FC, $56, $2E, $5A, $16, $8E, $61, $1B, $29, $F2, $20, $C4, $9E, $95, $50, $18, $16, $AC, $D2, $93,
    $47, $1A, $45, $B4, $D6, $31, $18, $4B, $58, $7D, $A2, $57, $60, $6E, $D1, $FD, $B4, $02, $1B, $A1, $81, $B9, $B8, $CC, $F7, $B2, $C4, $2A, $66, $5A, $E5, $B9, $C9, $0F, $F3, $05, $EC, $FD, $92, $F2, $9D, $9C, $87, $AD, $9A, $FE, $98, $3F, $80, $32, $7C, $45, $C1, $6A, $0E, $B2, $FE, $01, $79, $5D, $8C, $FF, $0F, $21, $81, $FF, $A4, $F0, $48, $C8, $8B, $6C, $27, $6F, $F4, $27,
    $72, $AA, $3E, $C6, $CE, $53, $46, $34, $93, $A6, $50, $A6, $10, $AC, $16, $2C, $FC, $BC, $7A, $49, $82, $B4, $AE, $9C, $97, $70, $57, $BE, $84, $8B, $96, $85, $1D, $58, $99, $78, $90, $C5, $11, $A1, $B3, $64, $B0, $CA, $A2, $06, $F3, $E8, $2B, $EE, $CF, $6C, $CD, $E1, $7C, $BC, $CF, $1A, $99, $55, $1A, $D0, $41, $AB, $2F, $63, $15, $23, $32, $4F, $F1, $D3, $C7, $19, $AB, $BD,
    $89, $99, $69, $33, $1F, $ED, $2D, $8C, $89, $AD, $82, $B6, $60, $26, $AC, $F2, $6A, $7E, $9D, $6F, $0D, $4F, $EB, $F2, $8E, $C4, $B0, $C6, $C0, $26, $43, $36, $82, $39, $01, $F2, $48, $DF, $A1, $4C, $21, $58, $65, $36, $B0, $73, $12, $D6, $0A, $CB, $30, $4A, $AD, $65, $E1, $C0, $4B, $30, $D4, $D5, $C6, $89, $EB, $9B, $AC, $D2, $6E, $07, $A5, $89, $EA, $61, $10, $61, $B5, $65,
    $11, $CD, $02, $BB, $96, $86, $8A, $4B, $61, $AC, $47, $79, $58, $27, $65, $35, $97, $58, $84, $E6, $1C, $0B, $AB, $05, $84, $54, $91, $A6, $9B, $D7, $98, $18, $FA, $02, $CB, $32, $66, $75, $32, $F7, $76, $30, $17, $EC, $EE, $74, $FD, $30, $DE, $3C, $F6, $1A, $BB, $5C, $2A, $B4, $53, $99, $42, $B0, $9A, $F3, $5D, $6D, $ED, $C2, $0F, $C2, $18, $19, $B9, $3A, $F5, $11, $EA, $BE,
    $4A, $34, $5E, $8D, $06, $D6, $C3, $15, $1B, $AB, $F3, $79, $D2, $E5, $6D, $C4, $3E, $A3, $5D, $8D, $A1, $EE, $C3, $35, $1A, $42, $28, $B1, $8A, $91, $7E, $9B, $04, $AB, $C7, $65, $11, $45, $C6, $EA, $11, $AB, $E0, $82, $86, $0A, $2F, $25, $DA, $68, $26, $9E, $E3, $64, $B5, $AC, $AC, $6C, $0F, $46, $73, $96, $39, $43, $6F, $56, $C2, $52, $BE, $B5, $1A, $16, $A7, $1D, $B6, $D0,
    $A4, $BC, $CF, $3E, $72, $FB, $DD, $A9, $4C, $61, $1B, $B1, $86, $9B, $A1, $31, $90, $FA, $08, $57, $9F, $6E, $07, $DF, $C6, $E0, $57, $0C, $5D, $AD, $43, $12, $AE, $D4, $D5, $D5, $05, $58, $38, $EA, $EF, $64, $DF, $28, $32, $90, $41, $56, $07, $12, $BB, $5A, $02, $1D, $41, $2B, $AB, $68, $92, $8F, $70, $56, $C7, $5B, $5A, $1C, $63, $95, $FC, $EF, $A6, $F5, $BA, $7F, $60, $F7,
    $7C, $93, $BA, $B0, $21, $9E, $B4, $D9, $94, $44, $31, $BA, $22, $67, $1B, $3F, $C4, $7D, $12, $B4, $F4, $69, $03, $17, $AA, $69, $04, $12, $1A, $9E, $48, $24, $A2, $60, $C1, $A9, $4C, $61, $63, $75, $9F, $94, $8F, $DE, $E5, $08, $25, $2A, $A4, $38, $12, $6A, $37, $E5, $87, $0A, $B1, $DF, $63, $F8, $E3, $75, $58, $A1, $C7, $0F, $68, $DA, $81, $F8, $A0, $06, $56, $4B, $24, $56,
    $CB, $78, $75, $C3, $48, $42, $62, $52, $1E, $07, $9C, $AC, $B6, $59, $E7, $23, $AE, $13, $5F, $2C, $D0, $4C, $E7, $58, $42, $0E, $49, $94, $14, $AC, $36, $1A, $8F, $F9, $30, $AD, $18, $18, $53, $E3, $82, $7A, $9D, $B6, $48, $C5, $74, $8E, $53, $99, $C2, $CA, $EA, $7B, $8E, $18, $1B, $E7, $11, $31, $3B, $A6, $64, $C2, $6A, $71, $02, $36, $52, $B2, $7A, $D6, $43, $83, $EE, $CE,
    $6A, $2B, $31, $64, $C9, $62, $1B, $AB, $E8, $14, $5C, $96, $3D, $CB, $28, $8E, $01, $6A, $98, $4C, $8E, $93, $55, $43, $53, $69, $92, $6C, $D2, $30, $E4, $65, $04, $C0, $54, $16, $FC, $42, $BA, $A2, $29, $F8, $AF, $7B, $8C, $15, $36, $9A, $3D, $3B, $68, $1C, $6E, $81, $88, $08, $B5, $40, $A1, $4C, $61, $61, $35, $F4, $1C, $EB, $47, $8F, $EA, $EA, $EA, $32, $F7, $23, $1C, $AE,
    $5E, $1D, $67, $F5, $17, $89, $D5, $0E, $6C, $38, $A8, $9C, $70, $98, $9C, $4C, $67, $C1, $DB, $4C, $2B, $61, $48, $1B, $B4, $6E, $9B, $B7, $E0, $04, $C0, $B5, $1C, $CD, $C6, $2A, $9A, $9B, $43, $DC, $02, $A0, $9E, $8A, $29, $A3, $CA, $58, $7D, $8B, $66, $83, $97, $34, $A3, $EE, $40, $35, $8A, $DA, $0D, $12, $AC, $DE, $AD, $66, $A8, $4C, $DD, $03, $64, $E4, $AF, $12, $86, $AE,
    $EB, $3A, $F6, $58, $73, $F0, $FA, $CE, $19, $11, $85, $32, $85, $85, $D5, $1D, $B4, $82, $E3, $28, $AF, $D6, $FD, $08, $25, $AB, $FD, $C0, $8C, $A7, $CF, $11, $33, $0F, $52, $6F, $85, $42, $96, $DF, $F3, $C7, $8A, $B1, $1C, $ED, $DF, $EA, $9A, $9D, $55, $E2, $2A, $D3, $BE, $92, $F6, $56, $67, $A4, $99, $14, $E1, $59, $7D, $61, $49, $6B, $4F, $9C, $AA, $07, $BA, $B6, $98, $45,
    $67, $7B, $0D, $B7, $0E, $60, $E4, $60, $2D, $B4, $F0, $18, $C2, $1F, $E1, $05, $FD, $D7, $F5, $83, $48, $5F, $16, $F0, $9F, $83, $01, $A7, $67, $2C, $A1, $BC, $02, $0A, $65, $0A, $99, $D5, $11, $74, $68, $36, $07, $1E, $98, $AC, $2A, $8E, $70, $68, $96, $E1, $48, $32, $0F, $4C, $39, $57, $24, $73, $AF, $8D, $D5, $83, $72, $87, $9E, $5B, $59, $FD, $E9, $E0, $80, $EC, $FC, $70,
    $56, $B7, $71, $C9, $02, $7A, $B2, $9E, $49, $29, $1C, $95, $B3, $AA, $55, $E0, $2C, $54, $82, $0F, $59, $F5, $07, $A4, $74, $B8, $83, $1B, $FC, $4C, $82, $D8, $3F, $60, $83, $65, $82, $0F, $E1, $AF, $D4, $45, $C7, $F0, $1E, $A5, $98, $05, $CD, $6E, $74, $14, $50, $29, $53, $48, $AC, $06, $9B, $E0, $69, $50, $2B, $48, $40, $85, $C1, $AA, $52, $CB, $42, $09, $7C, $DA, $7C, $73,
    $E2, $E0, $0B, $2B, $AB, $39, $84, $A1, $A4, $CB, $BC, $B7, $C9, $6A, $A8, $9D, $B7, $0C, $F6, $8A, $16, $4B, $42, $98, $82, $55, $AD, $A0, $C9, $0C, $CC, $AE, $C6, $69, $C0, $15, $62, $A4, $90, $09, $AB, $0B, $B8, $FE, $28, $6E, $6D, $4C, $5D, $94, $74, $35, $4C, $D9, $EE, $03, $CA, $81, $23, $AF, $BD, $52, $99, $42, $62, $75, $2B, $95, $A0, $38, $43, $1C, $53, $83, $D5, $D4,
    $5A, $16, $32, $B6, $19, $ED, $95, $0C, $21, $39, $C1, $26, $AB, $87, $6C, $32, $74, $6A, $56, $D1, $B9, $3C, $69, $8E, $58, $F5, $FB, $66, $DD, $30, $58, $25, $BE, $99, $38, $95, $FE, $84, $D8, $82, $DC, $4E, $D1, $7F, $64, $C2, $EA, $6E, $43, $70, $66, $37, $7C, $95, $BA, $68, $09, $86, $D3, $D3, $AD, $5F, $D0, $75, $73, $16, $50, $29, $53, $98, $AC, $96, $D3, $76, $3B, $91,
    $50, $5B, $44, $46, $68, $3D, $5C, $8F, $50, $03, $0D, $79, $12, $BF, $6F, $A3, $12, $19, $9F, $24, $13, $AC, $F6, $41, $09, $9B, $44, $41, $1A, $56, $8B, $8E, $1A, $73, $30, $DC, $9C, $0C, $05, $43, $91, $C5, $64, $B5, $84, $CB, $E2, $E0, $3C, $D6, $4D, $D4, $66, $3B, $AC, $65, $CE, $EA, $0D, $E3, $51, $FE, $61, $C2, $1A, $5A, $CA, $29, $2B, $38, $3B, $BC, $A8, $6C, $71, $87,
    $A9, $B1, $6B, $6B, $A5, $0E, $65, $0A, $83, $D5, $C0, $43, $78, $11, $62, $CA, $66, $A6, $8B, $E7, $AE, $65, $E1, $C0, $49, $7A, $D4, $AF, $BB, $9A, $85, $F2, $08, $63, $B5, $31, $7E, $96, $05, $9C, $BB, $7E, $A2, $41, $56, $EB, $E3, $67, $98, $2C, $CD, $E7, $96, $99, $40, $AC, $BC, $4D, $41, $83, $55, $FD, $8B, $21, $65, $C3, $CE, $0B, $B9, $98, $40, $0B, $B1, $D4, $91, $A4,
    $A1, $59, $80, $AC, $B6, $88, $FC, $01, $69, $BE, $48, $24, $0D, $F1, $E9, $CE, $54, $B3, $55, $CC, $31, $49, $5A, $1A, $EC, $97, $8A, $DE, $CC, $A1, $4C, $61, $B0, $BA, $81, $F5, $AD, $6B, $1A, $08, $C8, $6F, $07, $5D, $8F, $70, $FB, $B8, $62, $6A, $54, $24, $DF, $71, $CC, $5A, $BF, $7C, $4F, $4B, $C5, $2A, $47, $FB, $47, $D6, $59, $EB, $9C, $56, $51, $31, $29, $AB, $C2, $23,
    $65, $B3, $BF, $73, $F1, $CD, $6F, $67, $5E, $B0, $7A, $7E, $35, $D5, $07, $2D, $E3, $A8, $F4, $69, $0C, $CA, $9F, $F2, $93, $1E, $1B, $84, $4E, $74, $B9, $F5, $57, $A5, $32, $85, $60, $75, $20, $F3, $F6, $C5, $53, $D5, $BA, $1F, $E1, $86, $DC, $B8, $90, $AD, $E8, $AF, $D9, $58, $6D, $5A, $98, $E2, $0B, $AD, $C1, $EA, $93, $A5, $39, $F6, $2F, $2C, $54, $E5, $79, $94, $8D, $D5,
    $38, $9D, $3D, $23, $6E, $6A, $05, $BA, $D3, $45, $5D, $62, $35, $23, $E8, $EF, $AE, $3B, $12, $DF, $FF, $6D, $1F, $26, $C5, $68, $F3, $85, $95, $CA, $14, $82, $D5, $72, $59, $FE, $21, $1A, $2D, $76, $3F, $C2, $1D, $A5, $8B, $FF, $88, $1F, $5B, $65, $0E, $E9, $C2, $CC, $25, $1C, $94, $9F, $F2, $28, $2E, $41, $51, $2E, $9D, $DB, $BC, $F7, $31, $64, $73, $04, $BB, $BD, $A8, $A6,
    $7F, $B3, $A1, $6E, $C3, $CC, $12, $D1, $79, $93, $11, $D5, $2E, $49, $D2, $5B, $97, $A5, $2C, $FE, $65, $39, $8A, $F4, $EB, $01, $DE, $50, $8C, $F9, $FB, $2D, $32, $48, $B9, $DA, $E3, $8D, $BC, $B9, $FF, $2C, $AB, $6F, $34, $7C, $56, $7D, $56, $7D, $56, $FF, $97, $71, $BA, $A1, $61, $92, $CF, $82, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1,
    $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $F1, $1F, $C3, $E2, $BA, $BA, $BA, $E5, $7C, $45, $A6, $45, $AC, $22, $B8, $EB, $11, $C6, $52, $86, $0E, $3E, $CC, $E0, $B3, $4A, $70, $55, $5D, $DD, $8C, $2E, $DF, $8B, $FD, $E8, $2E, $DD, $82, $B7, $2B, $BD, $B2, $33, $53, $E0, $F2, $A4, $E3, $F6, $80, $2A, $8A, $15, $6C, $09, $DA, $16, $33, $D0, $75, $65, $53, $3A, $ED, $8F, $70, $BD,
    $C7, $E8, $60, $6F, $47, $3B, $6F, $21, $5B, $78, $75, $67, $E6, $A4, $26, $67, $1A, $7F, $59, $58, $FD, $9D, $2D, $FD, $3A, $62, $AE, $D1, $AD, $33, $17, $2A, $A9, $91, $77, $13, $60, $F5, $65, $C8, $24, $EF, $7B, $CA, $A3, $9D, $B7, $90, $2D, $BC, $BA, $33, $13, $CC, $8E, $C7, $8F, $49, $EB, $A1, $2C, $AC, $96, $75, $C0, $FD, $90, $A6, $95, $77, $1A, $4B, $EE, $D3, $B1, $1A,
    $DC, $19, $3F, $55, $A1, $E9, $B5, $F1, $F8, $BC, $AE, $34, $4A, $E7, $D1, $CE, $5B, $70, $45, $28, $98, $D1, $C5, $BC, $9E, $59, $AF, $8E, $C5, $C4, $B2, $25, $59, $5E, $22, $13, $58, $3F, $4D, $87, $99, $CE, $45, $AE, $21, $77, $91, $B6, $AE, $66, $1D, $8E, $5B, $50, $23, $7A, $2E, $09, $D0, $BE, $37, $45, $38, $D2, $A0, $0B, $18, $B6, $A9, $AF, $B8, $F6, $8D, $FA, $CC, $98,
    $F9, $3E, $E4, $C8, $7A, $AF, $57, $37, $99, $B9, $57, $6D, $F2, $12, $5D, $65, $D5, $01, $1B, $AB, $61, $0F, $62, $14, $19, $22, $A7, $2B, $A7, $0C, $5F, $00, $38, $34, $78, $D8, $31, $2E, $0F, $A0, $AC, $C9, $1D, $34, $1C, $11, $33, $40, $AA, $D5, $B6, $6A, $94, $0B, $04, $03, $ED, $52, $46, $5B, $AB, $BC, $84, $12, $5F, $C9, $EB, $76, $AF, $93, $3F, $7A, $A8, $58, $B5, $29,
    $53, $C8, $AC, $EA, $D3, $EE, $D2, $75, $91, $F3, $AD, $2B, $EA, $BC, $69, $59, $04, $16, $1B, $31, $33, $43, $27, $9A, $7B, $6D, $FA, $16, $29, $B3, $2F, $4B, $15, $EA, $06, $4F, $C5, $3E, $53, $4A, $20, $69, $03, $06, $2D, $B5, $6B, $1A, $E6, $2A, $A3, $BD, $88, $63, $A5, $A5, $9A, $55, $6D, $49, $D5, $2C, $C1, $AA, $55, $5E, $C2, $E5, $56, $50, $AC, $8A, $3F, $5A, $A5, $B1,
    $CE, $DB, $C6, $AA, $5D, $99, $42, $62, $35, $FF, $B6, $21, $46, $D1, $33, $C5, $11, $6A, $7C, $FE, $C2, $88, $8F, $0E, $3D, $85, $5B, $7C, $81, $B8, $43, $DF, $C2, $23, $AB, $53, $41, $B4, $CC, $6D, $70, $D1, $ED, $92, $7F, $01, $7C, $43, $13, $B2, $35, $47, $94, $AC, $0E, $16, $D9, $58, $ED, $E6, $B9, $9A, $B3, $6A, $93, $97, $70, $01, $0A, $3E, $AC, $B4, $55, $55, $3B, $AB,
    $76, $65, $0A, $93, $D5, $B0, $94, $DA, $EC, $49, $C8, $FD, $08, $F5, $1B, $C5, $20, $2D, $AE, $B4, $B1, $D7, $D0, $46, $71, $EA, $5B, $78, $64, $F5, $4F, $5E, $55, $31, $B0, $2D, $E9, $7A, $D1, $B7, $E9, $52, $D6, $DC, $0A, $76, $B3, $DE, $57, $05, $0B, $56, $8F, $AB, $42, $52, $94, $95, $B5, $23, $6C, $AD, $AA, $76, $56, $ED, $CA, $14, $26, $AB, $18, $67, $F2, $E8, $93, $3E,
    $7D, $BF, $4D, $58, $23, $E1, $BD, $69, $59, $14, $90, $32, $1D, $15, $93, $96, $2C, $99, $30, $C3, $0C, $68, $73, $EA, $5B, $78, $64, $35, $6E, $44, $1A, $56, $43, $A7, $47, $53, $AC, $D4, $B2, $48, $C5, $AA, $4D, $5E, $22, $65, $65, $5D, $C0, $AB, $6A, $B2, $40, $C5, $AA, $43, $99, $C2, $60, $15, $A3, $FB, $1E, $D3, $57, $32, $D8, $10, $A3, $50, $1E, $31, $28, $1A, $95, $34,
    $93, $46, $8B, $05, $D8, $51, $70, $E8, $AE, $28, $F4, $2D, $DC, $58, $1D, $B0, $68, $77, $6C, $C3, $78, $C3, $9E, $13, $63, $D9, $41, $57, $68, $07, $EE, $B3, $18, $95, $F2, $68, $94, $34, $BD, $61, $EB, $63, $DB, $26, $F0, $36, $6B, $2C, $AD, $0E, $4A, $AC, $7A, $8B, $61, $61, $AC, $DA, $E5, $25, $52, $56, $D6, $D6, $00, $AB, $AA, $75, $4A, $1F, $C0, $A1, $4C, $61, $B0, $8A,
    $B9, $3A, $C7, $99, $B5, $F6, $13, $D7, $23, $48, $C1, $47, $E6, $09, $CD, $28, $E4, $CD, $26, $AB, $3C, $8A, $59, $A1, $6F, $A1, $66, $B5, $E0, $6F, $76, $5C, $8B, $E8, $99, $50, $8F, $E0, $71, $29, $31, $21, $17, $20, $D1, $8B, $57, $DE, $9A, $F0, $79, $5A, $E8, $6E, $0F, $6B, $83, $2F, $EA, $22, $AB, $87, $3D, $27, $C2, $9C, $CE, $3A, $44, $D2, $68, $93, $11, $25, $AB, $0E,
    $65, $0A, $83, $55, $94, $6B, $E2, $75, $E5, $43, $23, $6B, $B2, $EA, $88, $99, $B2, $3C, $44, $0E, $D7, $F4, $D0, $70, $A1, $3E, $C0, $91, $8F, $3E, $BD, $26, $62, $E9, $94, $FA, $16, $4A, $56, $7B, $36, $3B, $E2, $6E, $68, $FF, $FD, $CB, $FA, $4E, $68, $1E, $68, $98, $84, $1B, $A2, $25, $04, $BB, $C9, $6A, $4E, $59, $59, $8E, $43, $5E, $22, $4D, $65, $6D, $D2, $CB, $64, $17,
    $EB, $40, $3C, $6E, $FA, $26, $4E, $65, $0A, $C1, $2A, $36, $74, $E1, $10, $F7, $E2, $59, $E9, $D5, $47, $8C, $94, $3B, $83, $DE, $E6, $BB, $68, $61, $C1, $6B, $81, $87, $22, $88, $4D, $A5, $6F, $A1, $62, $55, $6F, $20, $96, $7B, $42, $4E, $78, $34, $71, $E1, $92, $22, $32, $A3, $9A, $49, $7C, $9D, $0A, $1B, $86, $96, $E0, $C2, $D4, $45, $18, $2B, $44, $65, $28, $74, $0C, $A1,
    $BD, $D2, $25, $56, $69, $DF, $6C, $97, $97, $48, $57, $59, $A3, $BB, $A5, $AA, $6A, $1B, $8E, $38, $94, $29, $04, $AB, $FD, $24, $DE, $30, $7A, $B5, $D5, $F5, $88, $22, $CE, $06, $4D, $C6, $5E, $0E, $F0, $CC, $BA, $1B, $EB, $6C, $0B, $1B, $41, $2A, $F4, $2D, $54, $AC, $8E, $13, $11, $80, $6F, $93, $8D, $E5, $A2, $F7, $BB, $C2, $42, $B7, $96, $EB, $26, $AB, $E8, $DF, $0C, $B0,
    $84, $7D, $D5, $D9, $58, $B5, $6A, $59, $A4, $82, $43, $5E, $22, $5D, $65, $6D, $4C, $BA, $8E, $48, $9C, $CA, $14, $82, $55, $95, $6C, $82, $FA, $08, $24, $68, $2C, $06, $E5, $60, $2C, $68, $15, $88, $98, $E5, $0A, $61, $7A, $C7, $0A, $0B, $A1, $3A, $A5, $8A, $D5, $4B, $5C, $A6, $85, $2A, $47, $DD, $65, $5B, $EF, $B6, $C3, $93, $49, $38, $5D, $02, $37, $F2, $04, $AB, $34, $FB,
    $38, $4D, $8A, $5D, $E4, $C6, $AA, $55, $75, $21, $05, $DE, $CB, $2C, $85, $EB, $74, $A6, $F5, $E3, $A2, $96, $E8, $54, $A6, $90, $59, $DD, $AC, $60, $D5, $79, $04, $8E, $B5, $BE, $D1, $74, $32, $F0, $BB, $AE, $69, $F3, $8C, $F8, $DD, $0A, $26, $5A, $C1, $9C, $81, $4C, $58, $C5, $B7, $74, $A0, $8C, $E2, $9A, $B8, $EE, $08, $B2, $8B, $B4, $CF, $41, $18, $68, $7C, $2F, $C0, $59,
    $65, $B5, $76, $09, $D9, $7A, $B7, $BB, $AC, $52, $79, $89, $F0, $17, $DB, $63, $B5, $45, $9E, $2B, $2B, $C0, $1A, $F7, $41, $9E, $4D, $99, $42, $B0, $3A, $84, $EC, $FA, $59, $A2, $A0, $CD, $F5, $08, $1C, $D3, $6C, $A1, $94, $41, $2F, $4C, $57, $CF, $63, $96, $DF, $12, $FD, $D6, $5C, $A1, $A1, $A9, $D2, $B7, $50, $B0, $DA, $C7, $AA, $E1, $80, $DC, $05, $9A, $B9, $30, $52, $F8,
    $26, $F7, $15, $CD, $E8, $E0, $CF, $C9, $D6, $24, $37, $56, $3D, $68, $59, $50, $A0, $BC, $44, $4F, $6A, $B9, $93, $83, $3C, $57, $56, $B7, $AA, $AA, $50, $A6, $90, $ED, $AA, $10, $A3, $08, $9B, $BD, $95, $E2, $08, $64, $F2, $2C, $9D, $1B, $86, $45, $E8, $9E, $8C, $34, $BD, $81, $85, $DC, $57, $DE, $E7, $38, $A5, $D0, $B7, $50, $B0, $5A, $E6, $64, $75, $1C, $74, $F0, $C1, $5D,
    $1E, $79, $F4, $BF, $2D, $AC, $56, $9B, $73, $23, $4E, $56, $3D, $F6, $56, $4C, $5E, $E2, $C8, $E1, $F1, $EB, $CC, $E8, $E7, $D4, $C0, $9E, $F7, $4F, $E9, $EF, $AA, $EA, $EA, $12, $69, $E4, $6C, $57, $A6, $90, $7D, $00, $59, $8C, $62, $BB, $EB, $11, $F8, $DE, $5E, $10, $AF, $89, $74, $60, $8F, $91, $6C, $F1, $54, $C4, $E7, $4C, $CE, $28, $E8, $45, $EC, $2D, $0C, $67, $8C, $28,
    $F4, $2D, $16, $99, $8A, $54, $32, $AB, $31, $33, $56, $92, $FD, $74, $44, $1A, $0F, $34, $58, $58, $9D, $09, $52, $92, $E7, $AE, $B1, $CA, $E4, $25, $30, $42, $98, $34, $C5, $63, $9E, $59, $8D, $A9, $67, $02, $55, $CA, $14, $86, $BF, $FA, $D2, $14, $A3, $98, $C3, $9B, $BD, $8B, $96, $C5, $08, $FC, $92, $01, $30, $9F, $98, $DC, $FE, $09, $2E, $8A, $A8, $31, $89, $2F, $8E, $3C,
    $C3, $D7, $B2, $EB, $5B, $CC, $30, $22, $FE, $B5, $65, $D4, $84, $30, $23, $B3, $C2, $3E, $FB, $76, $5D, $6A, $5E, $BB, $2D, $AC, $EE, $64, $4E, $49, $77, $58, $65, $F2, $12, $88, $FD, $90, $4E, $26, $34, $3D, $AB, $2A, $65, $0A, $83, $55, $EC, $E5, $97, $30, $1B, $88, $13, $4D, $39, $AE, $47, $50, $DF, $93, $8C, $95, $FA, $FE, $44, $1E, $D8, $74, $C1, $F2, $A4, $99, $94, $0B,
    $62, $BE, $C9, $A1, $6F, $81, $2A, $26, $F3, $8C, $BA, $DD, $A9, $73, $8F, $F8, $BE, $F5, $19, $88, $17, $3C, $8B, $6F, $92, $2E, $7F, $98, $CC, $6A, $B0, $DD, $1C, $5A, $74, $91, $D5, $72, $21, $DE, $1B, $8A, $83, $D9, $28, $BA, $CC, $AA, $4A, $99, $C2, $60, $15, $1D, $D3, $E4, $30, $41, $C6, $76, $F7, $23, $78, $05, $7E, $AA, $95, $D2, $7F, $B9, $62, $AE, $7E, $19, $3B, $C9,
    $53, $0D, $97, $37, $A0, $96, $E7, $5A, $A3, $03, $B3, $E9, $5B, $A0, $22, $D4, $B3, $B0, $B8, $DE, $1F, $A2, $EA, $30, $A5, $3F, $13, $A4, $DD, $6F, $C1, $52, $3A, $A1, $6D, $BF, $26, $B3, $BA, $5D, $1E, $F7, $75, $89, $55, $2E, $2F, $41, $BA, $C9, $87, $90, $9C, $AF, $75, $9B, $55, $95, $32, $85, $39, $67, $75, $16, $39, $3A, $BD, $62, $03, $5A, $D0, $97, $B9, $EE, $47, $F0,
    $69, $6C, $E2, $66, $3C, $92, $B4, $9E, $EB, $0C, $6A, $02, $8D, $C6, $EC, $BC, $42, $DF, $02, $DD, $CD, $A6, $99, $15, $23, $96, $B5, $1B, $8A, $5B, $85, $28, $16, $11, $1F, $5D, $54, $54, $52, $39, $F7, $38, $37, $1E, $8B, $93, $90, $D8, $35, $63, $C5, $13, $42, $A1, $2E, $58, $AD, $EA, $57, $54, $71, $02, $DD, $13, $5A, $66, $84, $18, $5B, $6D, $20, $FF, $8E, $D7, $BC, $6B,
    $59, $70, $79, $09, $AD, $0F, $B1, $5E, $4F, $E3, $2E, $62, $E2, $DE, $59, $55, $2A, $53, $98, $AC, $E6, $3E, $36, $5A, $70, $62, $50, $8A, $23, $58, $17, $86, $CA, $5C, $54, $45, $9B, $0D, $63, $82, $E4, $71, $FF, $E1, $F7, $D7, $9F, $50, $38, $9B, $F5, $FC, $4E, $7D, $8B, $5E, $09, $D3, $50, $08, $6D, $F9, $29, $8A, $89, $D1, $9E, $6B, $EE, $93, $83, $AE, $AF, $2C, $96, $47,
    $AC, $EC, $E6, $86, $19, $AF, $D1, $E2, $9F, $7A, $9C, $5F, $35, $E4, $25, $2A, $20, $85, $EC, $B5, $77, $56, $95, $CA, $14, $D2, $B7, $80, $9C, $E3, $FC, $3A, $FF, $88, $CF, $8E, $2E, $5A, $16, $1B, $81, $89, $4B, $A3, $B0, $0C, $08, $E9, $8F, $F2, $6B, $86, $43, $FD, $E3, $CF, $A2, $AA, $38, $F5, $2D, $B4, $B2, $FB, $7C, $57, $EB, $67, $C6, $3D, $8E, $7D, $A6, $A4, $43, $B7,
    $4C, $B8, $72, $D4, $17, $6B, $DD, $62, $D5, $90, $97, $C8, $95, $9C, $8E, $F4, $66, $83, $14, $7C, $4B, $C9, $AA, $52, $99, $C2, $F2, $35, $B0, $0F, $3A, $3E, $A7, $87, $18, $7F, $BB, $68, $59, $14, $A1, $40, $05, $1D, $46, $45, $65, $05, $0C, $25, $EC, $FA, $16, $04, $C3, $56, $1C, $8E, $1F, $D9, $52, $25, $CF, $6D, $E8, $63, $36, $1D, $8F, $C7, $77, $FC, $30, $BE, $B7, $FB,
    $34, $36, $7C, $BF, $23, $F6, $DB, $6C, $C3, $4B, $2C, $95, $A5, $2B, $CA, $B5, $D7, $AC, $65, $91, $D1, $37, $56, $1D, $BC, $BA, $C5, $AF, $19, $A6, $67, $F5, $66, $20, $0D, $AB, $83, $AA, $2D, $F5, $E8, $32, $B3, $A4, $FA, $EC, $42, $9F, $D5, $6E, $B0, $6A, $C3, $44, $34, $4A, $2F, $1A, $DA, $BA, $B8, $F8, $C0, $67, $55, $8D, $63, $C2, $DE, $7F, $E6, $B3, $9A, $3D, $56, $F5,
    $F9, $74, $8C, $F4, $F4, $4B, $BF, $AE, $A6, $42, $E6, $62, $15, $BD, $CA, $2B, $8A, $B4, $37, $0C, $93, $53, $26, $3E, $F2, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $BA, $0C, $DD, $A7, $A0, $3B, $18, $88, $6B, $F4, $ED, $89, $86, $C6, $36, $42, $C7, $D6, $7C, $4D, $2B, $98, $E2, $13, $D4, $35, $0C,
    $C5, $D0, $5A, $EB, $C2, $E7, $71, $6C, $89, $FD, $8A, $99, $8F, $CD, $98, $2E, $1F, $99, $21, $7C, $C2, $4E, $EB, $51, $78, $B0, $9C, $C7, $A7, $F4, $F3, $F9, $E9, $2A, $66, $C6, $E3, $A7, $E4, $75, $3E, $81, $7D, $61, $4D, $FB, $F8, $01, $40, $53, $C5, $FF, $91, $27, $EC, $B1, $A9, $FE, $D2, $8F, $7C, $61, $94, $AB, $36, $46, $01, $1A, $C3, $A9, $AF, $FA, $56, $72, $F3, $32,
    $AE, $F6, $DF, $5C, $4A, $00, $34, $EE, $7C, $CF, $63, $F9, $D0, $4A, $F2, $1C, $8B, $5F, $3D, $A9, $03, $E8, $2A, $C7, $A7, $74, $6D, $AA, $AB, $36, $46, $C1, $13, $F0, $18, $8B, $EC, $11, $39, $D9, $91, $C7, $F8, $AA, $03, $EE, $2F, $AE, $5A, $DB, $06, $70, $A3, $C0, $E3, $8B, $BB, $A0, $CA, $56, $98, $83, $01, $E4, $83, $D9, $36, $C6, $FB, $CF, $4D, $73, $16, $5C, $76, $32,
    $5B, $FC, $31, $43, $48, $3C, $48, $B8, $0F, $2D, $5F, $6F, $E5, $EB, $78, $DD, $B4, $31, $90, $D4, $17, $D9, $6B, $9B, $76, $2D, $0B, $8C, $40, $01, $96, $71, $2D, $C2, $A3, $2D, $AA, $CD, $00, $E3, $3A, $33, $C7, $25, $2E, $1E, $BE, $79, $E0, $6B, $23, $35, $D6, $8F, $00, $EB, $68, $8D, $BD, $04, $F0, $48, $B9, $E2, $AF, $C9, $B9, $10, $63, $85, $8A, $56, $0C, $D7, $A8, $67,
    $CD, $15, $97, $80, $A6, $73, $F3, $3E, $25, $85, $CE, $8B, $3F, $4E, $9B, $61, $BB, $02, $7D, $E9, $6A, $FB, $3B, $F0, $42, $73, $D7, $C6, $40, $52, $CF, $E5, $66, $8D, $54, $87, $96, $05, $65, $F5, $96, $37, $56, $69, $8F, $C6, $43, $E7, $7A, $00, $B4, $B2, $DB, $C2, $45, $B3, $D3, $3D, $B2, $AA, $55, $BE, $74, $D2, $AA, $DF, $01, $1E, $6D, $81, $55, $35, $5D, $2E, $46, $1A,
    $89, $23, $22, $4A, $70, $ED, $7E, $A3, $ED, $F7, $31, $F4, $EE, $63, $B8, $BA, $D8, $55, $1B, $63, $58, $34, $FA, $6E, $F6, $1A, $BF, $53, $CB, $82, $B2, $4A, $E3, $27, $BC, $B1, $0A, $C0, $56, $EE, $57, $58, $32, $42, $D7, $79, $65, $55, $CB, $8B, $52, $61, $01, $AB, $BB, $07, $34, $AC, $91, $56, $D5, $E3, $E9, $1F, $A2, $01, $8C, $90, $97, $11, $52, $84, $A4, $C4, $EA, $08,
    $CC, $0D, $0F, $5E, $B5, $31, $BA, $0D, $A7, $96, $05, $63, $F5, $6C, $7A, $56, $6F, $47, $0A, $8A, $AB, $B0, $32, $75, $D2, $B7, $81, $41, $C1, $09, $66, $53, $1C, $AC, $F6, $9F, $E3, $CE, $AA, $12, $87, $58, $5C, $3E, $4A, $53, $78, $48, $E5, $86, $41, $4D, $9B, $D8, $E6, $26, $85, $FC, $46, $3F, $8C, $88, $D7, $9F, $C3, $65, $95, $36, $06, $E6, $19, $34, $D2, $8D, $57, $08,
    $89, $88, $4A, $B2, $C1, $83, $CE, $7A, $90, $CD, $81, $AE, $25, $75, $5C, $E0, $DD, $67, $D5, $46, $D2, $41, $E7, $2E, $AE, $FB, $9C, $B5, $03, $85, $96, $05, $63, $95, $06, $B2, $A5, $66, $95, $66, $2E, $0D, $60, $3C, $07, $13, $CE, $D8, $DA, $F6, $9C, $0D, $1A, $CA, $8C, $FA, $CB, $51, $D5, $C9, $32, $68, $7B, $67, $35, $BF, $13, $63, $91, $B0, $AA, $FE, $E4, $A1, $74, $1F,
    $53, $CB, $E7, $A9, $08, $27, $97, $41, $EE, $F1, $C4, $2D, $80, $0F, $55, $DA, $18, $18, $E8, $FF, $98, $6F, $07, $C9, $55, $1F, $1A, $03, $A1, $36, $BA, $C6, $5E, $BF, $4B, $78, $29, $71, $2D, $19, $02, $38, $38, $10, $63, $51, $3E, $CB, $C7, $56, $CF, $B2, $48, $2B, $B4, $2C, $90, $C2, $66, $16, $EF, $E4, $81, $55, $6D, $B5, $9C, $2B, $9C, $E1, $17, $1E, $FC, $26, $75, $63,
    $2C, $64, $C9, $3B, $AB, $34, $42, $B1, $9A, $54, $D5, $A7, $9E, $16, $BA, $3F, $11, $57, $EC, $25, $05, $E6, $9A, $28, $6D, $65, $D9, $6F, $95, $DA, $18, $F5, $66, $AC, $7A, $95, $99, $F5, $7B, $A7, $08, $62, $5A, $6F, $86, $9F, $A9, $4A, $12, $56, $EB, $69, $18, $C5, $55, $1A, $60, $C4, $5C, $17, $85, $96, $05, $52, $B8, $88, $45, $B4, $79, $65, $75, $94, $B5, $4D, $91, $57,
    $B7, $4A, $EA, $7A, $30, $2D, $79, $72, $4A, $66, $75, $55, $0B, $3C, $26, $07, $81, $BB, $54, $96, $15, $78, $13, $D3, $70, $63, $9A, $BA, $77, $0B, $57, $D7, $7E, $5B, $EA, $A2, $8D, $F1, $91, $19, $74, $8D, $01, $6B, $DC, $0F, $08, $60, $27, $3E, $95, $35, $E6, $0B, $29, $4A, $D2, $00, $92, $3D, $23, $D0, $21, $FE, $7B, $D0, $3D, $E6, $60, $A8, $B4, $2C, $90, $C2, $3C, $16,
    $AD, $E5, $81, $55, $FD, $A1, $19, $BE, $C9, $59, $24, $7D, $C7, $61, $C9, $25, $C5, $D8, $F7, $E6, $41, $19, $DA, $55, $4D, $1B, $4D, $5F, $FD, $45, $6F, $85, $07, $89, $F4, $DB, $71, $39, $2C, $D1, $4E, $AD, $5A, $1B, $23, $40, $BC, $E3, $76, $BA, $3F, $5F, $8E, $2F, $2E, $A3, $01, $68, $18, $99, $D6, $1E, $49, $51, $12, $59, $7D, $A4, $23, $CB, $C9, $7C, $6D, $15, $EB, $4F,
    $54, $5A, $16, $48, $21, $0A, $36, $74, $84, $2C, $AC, $5E, $8C, $51, $3C, $B0, $B0, $AA, $97, $9E, $07, $BB, $96, $E6, $7E, $80, $23, $A6, $F1, $2A, $C1, $C6, $79, $23, $A2, $65, $CC, $AA, $76, $06, $CC, $30, $E5, $B4, $13, $97, $ED, $2C, $D8, $34, $90, $4C, $11, $8A, $E2, $A6, $8D, $B1, $51, $84, $F4, $D5, $58, $F2, $84, $A3, $48, $CD, $C5, $2D, $72, $A0, $B3, $AA, $24, $B2,
    $3A, $99, $BE, $CD, $3D, $34, $5C, $BD, $4E, $53, $AB, $2E, $50, $56, $FB, $52, $6B, $22, $B3, $6A, $8B, $94, $92, $FE, $3C, $6C, $A9, $00, $EB, $88, $F9, $36, $49, $1D, $8D, $4D, $E3, $CF, $80, $D6, $05, $56, $A9, $2A, $EC, $78, $8F, $85, $77, $B1, $3E, $73, $B8, $85, $04, $2B, $5C, $B5, $31, $50, $B9, $8E, $86, $75, $DF, $B3, $EA, $D7, $5D, $60, $8F, $77, $30, $65, $C9, $10,
    $B3, $95, $71, $9A, $25, $3C, $1D, $AB, $DA, $39, $80, $E7, $BA, $17, $56, $77, $5A, $35, $11, $BE, $03, $90, $34, $78, $31, $C6, $4E, $72, $1F, $33, $61, $75, $02, $3D, $FB, $0B, $8F, $4A, $A4, $18, $D2, $BC, $9A, $86, $6A, $82, $CB, $00, $89, $6A, $63, $04, $BF, $DA, $B9, $73, $9A, $C3, $0A, $5C, $65, $47, $F5, $05, $43, $4E, $8E, $B9, $F2, $B4, $8F, $7B, $1A, $4A, $59, $32,
    $C4, $F8, $88, $D3, $2E, $5B, $62, $D5, $AE, $65, $C1, $58, $45, $6F, $7A, $82, $CC, $EA, $8E, $9A, $1A, $11, $96, $6A, $61, $F5, $A9, $65, $54, $3D, $CD, $10, $EC, $C3, $33, $62, $0D, $EA, $FC, $40, $EB, $0A, $AB, $41, $3E, $3A, $F1, $28, $80, $8C, $0F, $F7, $40, $D3, $1E, $9B, $DD, $84, $1D, $A8, $8D, $11, $A1, $11, $AB, $F7, $ED, $73, $1E, $9F, $B0, $B1, $E0, $6A, $33, $AA,
    $9F, $61, $2D, $D8, $78, $56, $94, $54, $B1, $AA, $D2, $B2, $60, $AC, $6A, $C4, $4D, $BB, $57, $90, $A6, $B7, $CA, $5D, $87, $E3, $43, $C9, $03, $24, $0E, $C7, $62, $AB, $35, $30, $DC, $92, $0C, $59, $45, $87, $66, $22, $96, $F7, $38, $14, $C2, $C0, $DD, $02, $32, $68, $36, $E2, $EB, $6D, $A0, $DA, $18, $67, $20, $F9, $33, $71, $20, $B7, $DA, $FB, $2B, $62, $95, $6F, $6A, $7A,
    $8B, $2D, $20, $BC, $37, $9D, $E9, $6A, $CF, $4F, $59, $52, $C5, $AA, $4A, $CB, $82, $B3, $8A, $61, $5D, $D3, $D3, $FA, $00, $FB, $2C, $43, $7E, $D2, $0E, $BF, $B7, $DC, $EF, $14, $74, $8E, $76, $E9, $99, $B3, $DA, $9B, $0E, $59, $AB, $C1, $BD, $EE, $D9, $F0, $05, $BE, $85, $49, $36, $47, $59, $AA, $FA, $A8, $8D, $91, $4F, $1D, $9B, $EB, $28, $5E, $EA, $EC, $AF, $7A, $0D, $95,
    $35, $78, $90, $41, $AE, $1F, $5A, $9F, $B2, $A4, $8A, $55, $95, $96, $05, $67, $55, $27, $4D, $B0, $31, $2D, $AB, $28, $91, $F5, $5C, $B0, $56, $99, $14, $A4, $46, $84, $74, $58, $39, $DA, $A6, $BF, $73, $32, $66, $F5, $3C, $9D, $8A, $A0, $E2, $12, $DE, $C2, $7B, $B0, $59, $ED, $3F, $40, $CD, $80, $0A, $54, $1B, $63, $08, $D5, $A3, $FA, $85, $0B, $25, $D9, $FA, $AB, $05, $64,
    $40, $D4, $AC, $5B, $4D, $06, $CC, $BF, $62, $A8, $52, $B8, $94, $54, $B2, $AA, $D0, $B2, $E0, $AC, $6A, $F3, $D9, $AB, $4A, $E3, $AF, $FE, $65, $2A, $D7, $8C, $30, $48, $D5, $AF, $76, $88, $DB, $E8, $79, $0F, $C7, $79, $7D, $32, $64, $F5, $43, $5E, $47, $70, $64, $D2, $12, $F6, $74, $08, $19, $91, $B6, $77, $B8, $4D, $3B, $33, $6D, $8C, $0A, $CA, $EA, $16, $53, $31, $45, $EE,
    $85, $1E, $B6, $5B, $F9, $9B, $48, $27, $43, $0A, $3B, $CD, $A9, $5E, $65, $49, $25, $AB, $0A, $2D, $0B, $C1, $6A, $B8, $D3, $0B, $AB, $C3, $40, $0C, $9D, $07, $26, $A0, $7E, $18, $13, $D5, $D8, $01, $47, $CD, $7E, $04, $FD, $CE, $8E, $77, $33, $62, $35, $F0, $54, $68, $BF, $E0, $94, $E0, $56, $4F, $AC, $2E, $64, $95, $40, $29, $98, $CF, $B5, $31, $7A, $53, $3F, $E1, $06, $3C,
    $71, $14, $F8, $84, $1D, $2C, $CD, $CB, $16, $26, $98, $66, $E7, $4C, $9B, $D4, $AD, $BD, $A4, $92, $55, $85, $96, $85, $60, $95, $4E, $FF, $A4, $1F, $B1, $E2, $20, $F8, $43, $DC, $A8, $95, $9D, $AF, $6F, $24, $0F, $7D, $AB, $21, $DF, $80, $AC, $36, $70, $CC, $4A, $C1, $D0, $72, $63, $1A, $BA, $12, $C0, $A3, $AE, $65, $5F, $26, $B9, $A9, $FC, $4D, $68, $63, $3C, $82, $64, $DD,
    $61, $A1, $E7, $6B, $A1, $BD, $43, $D2, $A2, $A1, $37, $7D, $53, $B4, $C1, $B3, $D6, $18, $77, $7B, $49, $35, $AB, $4E, $2D, $0B, $83, $D5, $9E, $9E, $58, $C5, $6E, $E2, $0E, $F5, $54, $9B, $24, $58, $74, $D9, $A9, $FA, $65, $05, $67, $55, $20, $C5, $17, $22, $AA, $47, $C2, $87, $41, $57, $24, $99, $C9, $D4, $A0, $DA, $6B, $CA, $7C, $15, $86, $36, $C6, $20, $DA, $AB, $9F, $51,
    $4C, $5B, $53, $81, $08, $49, $D1, $FC, $37, $43, $21, $26, $D2, $CE, $26, $04, $5C, $4A, $AA, $59, $75, $6A, $59, $18, $AC, $E2, $14, $4F, $7A, $56, $71, $70, $6C, $9B, $5E, $71, $A0, $B2, $9D, $39, $0A, $1E, $59, $ED, $1B, $35, $27, $E6, $7B, $A2, $40, $83, $A7, $8F, $6A, $28, $39, $11, $55, $7E, $2F, $33, $B4, $31, $B4, $82, $C5, $B1, $6D, $1F, $AA, $8A, $BC, $2B, $CD, $F2,
    $A1, $CB, $20, $89, $55, $A0, $76, $C4, $68, $D7, $92, $3A, $D3, $8F, $20, $97, $20, $AC, $14, $4B, $13, $B0, $36, $2D, $8B, $1E, $86, $24, $47, $BE, $38, $37, $EE, $CA, $35, $AF, $81, $83, $13, $F2, $CF, $70, $F3, $69, $06, $A4, $9B, $00, $65, $E1, $E1, $95, $92, $94, $45, $97, $32, $2B, $BC, $32, $9C, $4A, $31, $D4, $ED, $6A, $C9, $FF, $79, $A0, $B2, $E1, $8D, $2C, $97, $FC,
    $DF, $46, $51, $A4, $D7, $4A, $10, $F3, $FD, $59, $2A, $F9, $3F, $0F, $A1, $5B, $34, $3E, $8B, $25, $7D, $30, $AE, $5A, $2A, $B3, $59, $D2, $47, $F0, $39, $74, $5C, $98, $15, $CA, $6A, $49, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $C7, $FF, $2C, $16, $D7, $D5, $D5, $2D, $0F, $FA, $3C, $64, $15,
    $7B, $70, $C1, $70, $D8, $E7, $21, $DB, $A4, $26, $67, $A6, $29, $13, $5E, $7C, $F2, $E0, $38, $9F, $2A, $EF, $98, $1D, $8F, $1F, $4B, $B7, $66, $27, $0F, $83, $7E, $8C, $BC, $BB, $6A, $BC, $BD, $F0, $B7, $BD, $EB, $3E, $EA, $82, $E2, $D0, $DC, $6B, $6B, $C8, $51, $91, $43, $17, $06, $BF, $41, $AC, $0C, $AD, $90, $91, $A6, $F0, $7C, $A7, $4A, $90, $17, $6C, $87, $7F, $86, $7C,
    $9E, $04, $E7, $63, $2F, $AD, $AD, $65, $8B, $E6, $22, $97, $A0, $65, $DF, $79, $80, $A6, $81, $6E, $E7, $70, $53, $E5, $18, $CD, $B4, $13, $AE, $02, $24, $DE, $9C, $4F, $C5, $61, $6B, $28, $4F, $EA, $1B, $C3, $50, $8D, $E4, $90, $CC, $2F, $F2, $08, $17, $C7, $1F, $35, $55, $24, $04, $86, $B1, $84, $65, $84, $D4, $27, $F0, $23, $A9, $70, $63, $92, $AE, $29, $55, $5D, $55, $39,
    $66, $B2, $F0, $15, $5C, $E5, $D8, $B3, $DB, $6C, $60, $3C, $8C, $C8, $CE, $DD, $C7, $7B, $A8, $01, $5B, $93, $2C, $A5, $E4, $1D, $09, $F0, $5C, $2C, $25, $4D, $C7, $EA, $22, $80, $D3, $CD, $90, $10, $4B, $04, $D5, $89, $EE, $55, $B8, $06, $8B, $35, $FD, $1E, $7C, $6A, $DF, $7F, $0A, $E3, $3C, $10, $71, $1E, $6A, $B5, $80, $2F, $F8, $92, $93, $86, $35, $09, $52, $D5, $AA, $1C,
    $11, $72, $47, $7D, $E8, $91, $A7, $B3, $50, $C9, $26, $99, $69, $DA, $30, $ED, $9A, $57, $E1, $A3, $52, $5B, $A2, $E3, $75, $70, $4A, $FC, $34, $2B, $4D, $92, $C8, $19, $18, $20, $D9, $BB, $19, $5A, $7A, $67, $CA, $EA, $44, $80, $FA, $47, $D0, $6C, $7F, $65, $98, $67, $8F, $46, $B4, $07, $08, $BB, $74, $E5, $69, $0E, $4F, $52, $67, $67, $35, $95, $2A, $47, $A8, $82, $06, $C7,
    $96, $BC, $9D, $95, $B6, $DB, $20, $32, $20, $0E, $B4, $64, $8A, $4C, $83, $CD, $36, $56, $9F, $B4, $89, $9B, $9D, $26, $B2, $59, $BA, $20, $10, $8D, $8E, $D1, $E9, $0A, $D5, $61, $99, $B2, $AA, $7D, $DB, $09, $D0, $E8, $E8, $D3, $D6, $01, $BC, $0C, $88, $AA, $49, $2B, $62, $84, $AF, $33, $B6, $B3, $9A, $5D, $55, $8E, $54, $18, $28, $02, $8D, $2F, $01, $B4, $79, $75, $17, $31,
    $B8, $EA, $06, $C0, $8E, $50, $28, $44, $9F, $A7, $C0, $88, $81, $7A, $DF, $1E, $01, $95, $16, $19, $B0, $AA, $05, $CB, $FA, $38, $F7, $75, $18, $31, $96, $C7, $79, $08, $D8, $06, $FE, $48, $C8, $6A, $7D, $11, $43, $AA, $94, $67, $6A, $79, $89, $6E, $21, $C6, $42, $A4, $46, $81, $91, $F4, $3B, $FD, $C5, $C6, $01, $1C, $8A, $49, $C1, $AF, $39, $22, $35, $65, $61, $47, $FA, $90,
    $C5, $C0, $98, $D5, $B1, $D8, $DA, $F1, $A1, $74, $AC, $AE, $B4, $79, $0A, $F9, $63, $97, $FE, $1E, $8B, $AD, $FA, $C4, $B6, $BC, $FC, $4B, $29, $D1, $62, $C8, $48, $FC, $3E, $44, $B0, $EA, $25, $1D, $AB, $5A, $5E, $A2, $5B, $C8, $4B, $D0, $E8, $85, $DB, $E4, $FF, $7A, $EA, $8B, $3D, $32, $7E, $B9, $40, $5E, $44, $4C, $15, $52, $7C, $CD, $54, $24, $72, $B5, $E4, $3C, $60, $B4,
    $63, $4E, $1A, $56, $6D, $59, $B8, $6E, $1B, $41, $1A, $4B, $2D, $E7, $7B, $28, $32, $93, $1B, $B7, $DD, $86, $39, $CC, $33, $61, $D5, $45, $5E, $A2, $5B, $C0, $38, $E5, $0F, $C7, $8A, $F7, $9B, $E2, $62, $86, $78, $56, $0F, $62, $2C, $74, $15, $AB, $D3, $D2, $6B, $C1, $6C, $30, $4D, $DD, $FA, $4C, $58, $D5, $25, $1B, $29, $07, $D0, $8E, $30, $EF, $91, $D7, $57, $F3, $38, $CF,
    $AC, $AA, $E5, $25, $BA, $05, $0C, $D2, $7B, $F0, $40, $A5, $1E, $60, $BB, $98, $A1, $20, $B1, $04, $35, $45, $14, $AC, $06, $5B, $5C, $22, $E2, $AD, $A7, $84, $53, $F3, $17, $36, $18, $6A, $4B, $5E, $59, $ED, $DC, $57, $D5, $27, $1C, $2A, $40, $6D, $82, $0E, $29, $36, $FC, $2F, $30, $D3, $8A, $53, $D4, $81, $E1, $7B, $79, $66, $D5, $45, $5E, $A2, $5B, $18, $C3, $84, $3A, $F3,
    $53, $5C, $0C, $7B, $55, $53, $85, $E3, $19, $86, $C4, $11, $56, $AF, $D7, $D6, $D6, $CA, $23, $9D, $79, $52, $02, $5C, $8A, $E2, $85, $75, $0B, $2D, $D1, $B3, $3A, $7A, $B3, $9F, $8A, $A1, $C0, $A5, $4C, $2C, $80, $B0, $C3, $56, $A9, $A3, $5E, $F6, $08, $8F, $40, $A7, $29, $75, $81, $AC, $9E, $0F, $31, $A4, $1E, $C4, $BA, $C8, $4B, $74, $0B, $E7, $90, $D5, $C5, $A9, $2E, $36,
    $47, $BE, $D8, $30, $6A, $62, $63, $AC, $35, $CA, $D5, $E9, $85, $CD, $AA, $2E, $A6, $25, $A8, $94, $51, $A4, $B6, $16, $83, $F3, $DE, $31, $F2, $83, $EB, $CF, $78, $2F, $E3, $95, $55, $81, $B1, $66, $2C, $16, $BB, $43, $4B, $88, $2D, $86, $0F, $E7, $C9, $AC, $0A, $54, $A7, $64, $C0, $4D, $5E, $A2, $3B, $C0, $73, $36, $05, $52, $5D, $EC, $2E, $C0, $33, $E3, $E6, $0F, $50, $EF,
    $C9, $C9, $EA, $68, $9B, $0C, $E1, $30, $FE, $40, $A8, $1F, $57, $CE, $6A, $26, $AA, $F4, $55, $9A, $6F, $6C, $A4, $9A, $D5, $AA, $5A, $04, $69, $28, $E7, $E9, $86, $E9, $14, $85, $7B, $95, $94, $2D, $95, $59, $45, $B7, $6A, $91, $66, $65, $F5, $A4, $96, $39, $AB, $6E, $F2, $12, $5D, $6E, $FE, $75, $75, $75, $18, $F8, $F9, $00, $A7, $1D, $0A, $5C, $2E, $86, $EC, $2E, $31, $1E,
    $2D, $49, $C7, $CA, $84, $D5, $33, $C4, $DB, $92, $1A, $F8, $61, $00, $CB, $AC, $C6, $09, $E2, $56, $2C, $C7, $00, $CB, $C3, $41, $14, $35, $40, $0B, $7D, $C4, $1C, $67, $4F, $E5, $41, $E3, $0A, $56, $63, $D6, $59, $05, $CE, $61, $F1, $A6, $66, $DB, $1E, $26, $28, $69, $D5, $17, $CD, $83, $19, $5D, $61, $D5, $4D, $5E, $A2, $8B, $B0, $C4, $D8, $96, $B9, $5C, $6C, $A5, $9C, $32,
    $7C, $3A, $9B, $2E, $70, $F4, $56, $C1, $A4, $F5, $8E, $74, $2A, $49, $10, $C0, $44, $F4, $2F, $EF, $F2, $28, $C9, $B8, $E9, $5C, $56, $F3, $47, $F5, $CA, $EA, $1A, $27, $CF, $54, $E4, $6C, $AF, $7D, $4A, $AF, $D8, $C2, $EA, $19, $9D, $C1, $C3, $B8, $46, $21, $2F, $D1, $55, $54, $C5, $62, $31, $94, $D5, $6A, $42, $99, $A3, $42, $F5, $C5, $B4, $17, $42, $3A, $8D, $4F, $AC, $9C,
    $A9, $A9, $A9, $B9, $69, $67, $15, $15, $17, $02, $96, $5A, $C3, $D4, $14, $FE, $E4, $59, $DD, $F9, $44, $88, $78, $3D, $D3, $79, $3F, $B3, $C8, $D4, $3B, $12, $AC, $56, $54, $23, $5E, $92, $4A, $4E, $37, $E8, $6B, $98, $8B, $1D, $EA, $F6, $A9, $E3, $A2, $9B, $25, $56, $DF, $71, $86, $92, $07, $8A, $7A, $58, $58, $F5, $4A, $92, $52, $5E, $A2, $7B, $BE, $95, $39, $C5, $A2, $BA,
    $58, $E1, $60, $39, $EA, $D7, $9C, $58, $B1, $B1, $5A, $63, $0B, $C6, $D7, $CB, $CA, $58, $DD, $5F, $86, $81, $FF, $97, $A9, $13, $B8, $CD, $A4, $64, $1B, $8F, $73, $9E, $21, $42, $F3, $49, $41, $8B, $E0, $86, $A5, $B7, $D2, $5B, $81, $4E, $2A, $69, $5A, $54, $62, $F5, $0C, $C0, $35, $EB, $FD, $56, $12, $6B, $7C, $56, $EF, $02, $AB, $4A, $79, $89, $AE, $33, $4A, $BC, $0E, $AC,
    $55, $87, $D1, $FD, $50, $5F, $EC, $DB, $2D, $A4, $0D, $EB, $CE, $89, $15, $1B, $AB, $9B, $5C, $25, $0E, $C2, $95, $EF, $97, $98, $C3, $4B, $36, $85, $83, $8D, $2D, $19, $E4, $7E, $1D, $17, $A0, $F9, $9B, $54, $47, $5D, $CD, $6A, $4F, $C3, $B5, $FB, $CC, $64, $B5, $48, $48, $05, $98, $B8, $05, $A6, $88, $67, $46, $AC, $AA, $E4, $25, $5E, $95, $5D, $65, $17, $6B, $93, $74, $F8,
    $D0, $26, $CC, $22, $B5, $B0, $EC, $AC, $9D, $55, $E2, $7E, $37, $A7, $BB, $1A, $8A, $EA, $30, $5D, $BD, $8D, $42, $34, $02, $05, $4C, $9E, $D1, $69, $9D, $41, $86, $DB, $E5, $64, $B5, $50, $E8, $22, $0C, $69, $33, $59, $25, $2F, $F8, $85, $AE, $98, $F7, $1D, $D3, $15, $56, $9D, $F2, $12, $AF, $90, $55, $7E, $B1, $DE, $D2, $C4, $4A, $AB, $CE, $67, $65, $EE, $A0, $DF, $60, $94,
    $5C, $E8, $65, $5A, $E2, $20, $75, $B5, $A6, $CC, $B8, $84, $1A, $43, $05, $62, $52, $01, $9A, $66, $56, $8C, $58, $D6, $2E, $26, $25, $55, $16, $00, $AD, $C8, $A2, $82, $9E, $B5, $52, $6F, $15, $4A, $38, $D5, $8D, $71, $E8, $D5, $9C, $DB, $15, $56, $1D, $F2, $12, $DD, $41, $84, $54, $BB, $72, $14, $52, $C1, $FA, $17, $70, $BB, $58, $BD, $3C, $B1, $B2, $DE, $98, $EB, $02, $B9,
    $D1, $E7, $36, $31, $DF, $36, $F5, $A7, $18, $53, $CA, $42, $E8, $7D, $F6, $4A, $98, $BB, $BE, $D3, $5C, $58, $35, $0D, $CF, $D9, $16, $C1, $EA, $D7, $C4, $86, $38, $86, $EC, $95, $35, $D5, $E1, $AE, $F4, $56, $4E, $79, $89, $57, $D8, $5B, $F1, $8B, $99, $29, $27, $8C, $1A, $ED, $60, $55, $0B, $56, $44, $D2, $5F, $2B, $F7, $B4, $90, $5F, $1E, $2A, $76, $95, $DD, $E7, $BB, $5A,
    $3F, $B3, $4C, $D5, $D4, $D4, $48, $FD, $7B, $E0, $22, $2B, $B3, $23, $70, $47, $B0, $FA, $D8, $54, $72, $74, $99, $DF, $CF, $88, $55, $9B, $68, $44, $F7, $11, $45, $59, $5F, $B7, $99, $C2, $28, $57, $93, $30, $8A, $B2, $8D, $B7, $B8, $46, $44, $C6, $17, $2B, $5B, $7C, $28, $7E, $7C, $43, $A5, $6C, $10, $87, $AD, $38, $1C, $3F, $B2, $A5, $2A, $B5, $A0, $EC, $D8, $DF, $E3, $C7,
    $96, $11, $67, $74, $38, $D7, $B9, $A8, $B4, $1A, $0C, $55, $6D, $21, $B7, $57, $EE, $F9, $BE, $7C, $D1, $08, $3E, $7B, $71, $25, $8B, $A7, $F3, $45, $23, $C4, $9C, $FA, $07, $59, $3A, $57, $86, $A2, $11, $21, $3B, $FE, $EF, $E4, $91, $9A, $1E, $8F, $1F, $CB, $D2, $D3, $64, $2A, $1A, $01, $76, $D4, $6A, $3E, $5C, $58, $F5, $2E, $1A, $E1, $B3, $EA, $05, $99, $8A, $46, $34, $D8,
    $31, $CB, $E7, $D0, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $FC, $BB, $D0, $7D, $0A, $D2, $21, $B8, $EB, $11, $2E, $83, $09, $1D, $7C, $E8, $31, $80, $65, $6C, $23, $74, $6C, $CD, $D7, $B4, $82, $29, $AF, $E1, $EE, $FE, $AB, $82, $14, $2B, $D8, $12, $FD, $2D, $6E, $59, $80, $EC, $18, $C7, $62, $29, $56,
    $CC, $7C, $2C, $AD, $40, $79, $55, $F8, $CF, $0A, $52, $FC, $CE, $96, $58, $1C, $31, $57, $D8, $A7, $C6, $51, $78, $B0, $FC, $0A, $0B, $FF, $EA, $F7, $1A, $48, $4D, $2B, $48, $91, $01, $02, $A1, $D7, $56, $EB, $CB, $3A, $E0, $7E, $48, $D3, $CA, $3B, $E1, $86, $27, $7B, $19, $D8, $47, $EA, $CE, $C7, $0F, $00, $9A, $2A, $5E, $F5, $AD, $79, $11, $A4, $C8, $04, $D7, $3C, $E6, $44,
    $F2, $DC, $BF, $A4, $50, $85, $08, $97, $52, $36, $73, $4B, $33, $EA, $84, $72, $F3, $DE, $98, $D6, $16, $99, $B1, $EF, $72, $C3, $B5, $23, $6B, $3F, $36, $77, $85, $06, $4F, $AA, $59, $62, $0B, $58, $D1, $B4, $04, $EC, $72, $3F, $CB, $64, $52, $D8, $D3, $E5, $86, $1A, $8B, $A7, $22, $E0, $58, $71, $27, $23, $A7, $A8, $28, $27, $93, $E7, $C8, $B4, $7C, $17, $A1, $BC, $8C, $5E,
    $50, $54, $60, $79, $FF, $AB, $2C, $42, $08, $88, $D2, $23, $8A, $40, $0A, $52, $11, $54, $59, $CC, $0C, $C4, $3D, $65, $AF, $0B, $95, $EF, $33, $AF, $93, $8A, $D5, $C0, $EC, $46, $BA, $52, $F1, $DB, $80, $47, $EB, $94, $A6, $7C, $18, $E0, $BE, $46, $63, $21, $17, $A9, $0B, $50, $1A, $1A, $C4, $5F, $B8, $6C, $1C, $E8, $0A, $FD, $B5, $96, $A5, $89, $EA, $CB, $F4, $FD, $13, $97,
    $F3, $76, $EE, $33, $4D, $FA, $2F, $60, $67, $75, $99, $22, $0C, $48, $2B, $5D, $74, $E8, $2E, $C0, $D5, $D5, $93, $59, $E5, $2D, $B3, $AC, $15, $69, $50, $B2, $1A, $91, $4A, $50, $FF, $28, $D8, $D4, $61, $79, $7B, $58, $60, $4F, $AD, $B2, $8E, $F7, $7A, $20, $8E, $7C, $D8, $C3, $0B, $A9, $69, $CB, $F7, $62, $AA, $18, $B3, $69, $56, $6A, $05, $FA, $80, $85, $D5, $7E, $46, $9A,
    $BE, $A7, $3C, $F9, $6F, $8A, $CB, $4C, $35, $1E, $53, $04, $4A, $E3, $82, $75, $9A, $8F, $2E, $77, $D0, $D7, $6C, $CF, $2C, $5E, $62, $47, $C5, $12, $83, $D5, $A2, $4B, $B6, $D5, $36, $5D, $62, $55, $2B, $1B, $FA, $F1, $1E, $1B, $AB, $6A, $FD, $81, $48, $B3, $79, $E8, $63, $0F, $8B, $58, $D2, $97, $1F, $C4, $92, $9C, $AF, $71, $F3, $29, $2E, $59, $59, $1D, $24, $FE, $2A, $91,
    $1B, $93, $FA, $32, $03, $F0, $CF, $27, $F1, $DB, $52, $E2, $C8, $F7, $C8, $F6, $0A, $8B, $D9, $E8, $34, $88, $A8, $10, $AC, $96, $26, $20, $2B, $AC, $6A, $74, $C5, $B3, $07, $56, $71, $A9, $F2, $BD, $71, $7D, $FA, $2D, $EC, $04, $48, $1B, $E1, $EC, $A9, $FC, $58, $80, $65, $1A, $4D, $18, $AF, $5C, $63, $8B, $31, $23, $1D, $12, $AB, $23, $E8, $5D, $E7, $89, $D4, $99, $7A, $AA,
    $CB, $9C, $E6, $89, $6C, $0B, $4F, $9E, $10, $BB, $70, $2D, $EF, $3D, $D9, $61, $FA, $02, $1C, $AC, $EA, $68, $4B, $8E, $BC, $77, $09, $DA, $46, $CC, $3E, $C8, $CC, $12, $55, $4C, $A2, $A8, $E7, $49, $9D, $D5, $AC, $1E, $AC, $65, $18, $9C, $11, $AB, $28, $E8, $F1, $80, $D6, $05, $BC, $85, $64, $5A, $87, $3B, $6D, $79, $5D, $9F, $0B, $30, $5B, $D7, $75, $72, $B7, $BD, $15, $21,
    $74, $E1, $97, $A4, $2A, $C7, $25, $56, $A3, $A4, $32, $02, $4C, $C0, $70, $91, $C7, $09, $21, $07, $A4, $BE, $0C, $AE, $B5, $DB, $6F, $1B, $34, $D3, $AC, $AB, $77, $A5, $67, $DB, $EA, $64, $75, $10, $0B, $9F, $BD, $CB, $74, $3E, $6C, $A8, $E7, $69, $60, $C9, $3D, $25, $34, $6D, $F8, $FA, $D8, $B6, $09, $BA, $49, $9A, $C3, $69, $F2, $C4, $EA, $76, $F2, $C3, $FB, $6C, $13, $3B,
    $CE, $8F, $D3, $B1, $9A, $AE, $7C, $8D, $75, $C9, $60, $93, $E3, $04, $3B, $00, $9A, $43, $32, $AB, $D5, $00, $2B, $01, $8E, $62, $90, $CF, $F2, $26, $11, $3F, $A9, $BE, $0C, $06, $6B, $4D, $B0, $9D, $2F, $8F, $D9, $DF, $DF, $8D, $30, $89, $98, $93, $D5, $4F, $A9, $E5, $D6, $0D, $71, $02, $9B, $BD, $62, $B1, $1F, $E4, $9E, $9A, $42, $27, $E8, $91, $77, $7B, $74, $93, $55, $52,
    $73, $3A, $03, $E6, $50, $74, $4B, $3A, $56, $D3, $95, $4F, $C7, $EA, $DB, $34, $50, $4C, $66, $95, $74, $2E, $D1, $DB, $D0, $A9, $93, $8E, $68, $C0, $43, $11, $9F, $A4, $BE, $CC, $20, $11, $5C, $25, $B5, $D2, $27, $FC, $4A, $1D, $53, $A5, $F7, $6E, $63, $F5, $63, $0C, $D0, $C4, $DC, $DB, $5F, $3B, $1F, $E8, $BC, $38, $27, $B9, $A7, $47, $F5, $C2, $92, $07, $BB, $C5, $6A, $44,
    $52, $F2, $42, $C1, $81, $74, $0B, $E3, $D3, $96, $1F, $1F, $8F, $B7, $01, $FC, $1D, $8F, $FF, $0D, $D0, $16, $8F, $1F, $B0, $DF, $D3, $1D, $C0, $C8, $70, $99, $55, $62, $4E, $C7, $D4, $12, $46, $8F, $41, $0B, $CA, $36, $95, $A4, $B8, $4C, $85, $F3, $31, $31, $33, $EE, $0E, $16, $B3, $72, $8E, $19, $8F, $69, $4E, $56, $69, $BA, $DB, $67, $7B, $1C, $AF, $84, $9B, $9A, $EB, $86,
    $BF, $0A, $70, $61, $EA, $A2, $56, $E1, $61, $E0, $5D, $4C, $EF, $15, $09, $66, $CC, $2A, $76, $85, $22, $1A, $26, $E8, $9A, $10, $38, $B3, $F2, $4F, $69, $76, $EB, $DE, $20, $05, $D6, $1B, $98, $C7, $92, $2F, $CB, $AC, $92, $E6, $5F, $41, $9E, $6D, $4D, $27, $6C, $C2, $44, $BB, $03, $5D, $2F, $13, $08, $61, $B5, $1D, $47, $17, $CE, $0B, $1F, $B6, $98, $EA, $3C, $E9, $DF, $D3,
    $3E, $FE, $26, $7D, $FE, $BC, $A4, $D3, $07, $F8, $9D, $EF, $5A, $E2, $70, $5A, $4E, $19, $31, $51, $94, $D5, $95, $DC, $D1, $78, $2E, $FB, $00, $AD, $7B, $2A, $32, $63, $B5, $42, $EA, $61, $75, $48, $3F, $BA, $F0, $52, $9E, $ED, $1D, $AC, $D2, $08, $CB, $4F, $B0, $56, $28, $B3, $FA, $33, $79, $72, $BD, $03, $3A, $51, $FD, $26, $CE, $B5, $53, $94, $97, $89, $4B, $96, $45, $44,
    $73, $7D, $CA, $83, $56, $23, $71, $53, $9E, $72, $A1, $93, $55, $7D, $3F, $DF, $D7, $59, $17, $71, $D4, $92, $BB, $E6, $D8, $6A, $27, $DD, $BA, $C0, $63, $E1, $25, $CF, $EA, $68, $E0, $5F, $66, $35, $D5, $D0, $EA, $18, $67, $53, $66, $35, $86, $33, $90, $F8, $D4, $6D, $3A, $FE, $1E, $CD, $88, $D5, $4F, $8C, $6D, $D4, $37, $E0, $72, $02, $CB, $1D, $AC, $12, $07, $EC, $AA, $B0,
    $BF, $96, $68, $BD, $23, $66, $4C, $54, $DC, $70, $EB, $96, $F0, $F8, $F3, $DC, $86, $86, $86, $1B, $4D, $CC, $FD, $3D, $90, $29, $AB, $BF, $48, $B7, $DF, $E1, $81, $D5, $34, $E5, $8B, $58, $FC, $5C, $8D, $42, $EE, $01, $3D, $F6, $12, $3B, $AB, $27, $F0, $CE, $B0, $3F, $D9, $4E, $19, $FE, $D4, $F5, $32, $4B, $62, $18, $CE, $77, $11, $75, $07, $62, $C2, $29, $A7, $89, $CC, $D9,
    $5C, $E1, $45, $33, $16, $BF, $34, $D6, $69, $67, $95, $98, $A4, $0E, $CE, $AB, $24, $4F, $89, $03, $8F, $47, $8E, $79, $80, $CF, $B9, $2A, $86, $78, $A0, $1D, $72, $48, $AE, $17, $56, $FB, $71, $17, $98, $0E, $4A, $C8, $F6, $ED, $34, $AC, $A6, $2B, $5F, $12, $8B, $9D, $65, $8A, $0B, $64, $D0, $5D, $1F, $8B, $59, $C6, $F0, $81, $27, $4C, $B4, $2E, $14, $22, $1D, $EF, $CD, $10,
    $9F, $EC, $FC, $1B, $9B, $5B, $1E, $EB, $89, $7F, $E7, $7A, $6D, $2E, $97, $51, $F4, $56, $D8, $5A, $61, $17, $9A, $CB, $5A, $39, $6A, $54, $2F, $79, $AF, $BA, $C4, $5A, $3E, $40, $06, $02, $74, $CE, $E0, $9A, $79, $F4, $9F, $92, $D4, $87, $C9, $6A, $B5, $5D, $00, $E4, $90, $14, $11, $EB, $85, $D5, $3C, $C9, $FB, $41, $1B, $B3, $37, $0D, $AB, $E9, $CA, $57, $40, $0A, $E1, $54,
    $FB, $8F, $EC, $44, $B7, $A9, $11, $BB, $01, $89, $00, $8D, $71, $9D, $9F, $E2, $32, $0A, $56, $0B, $E8, $C8, $F6, $E5, $14, $C6, $6F, $1F, $E7, $DD, $54, $48, $D3, $13, $5F, $A0, $EC, $20, $ED, $4B, $CD, $89, $9D, $E7, $BA, $83, $D5, $99, $F6, $50, $C9, $F7, $AC, $06, $29, $BD, $BF, $DA, $62, $CA, $AD, $7C, $C3, $87, $83, $29, $91, $A6, $7C, $17, $58, $7D, $4A, $3D, $FF, $DE,
    $15, $FD, $D9, $6C, $D6, $4F, $29, $2E, $A3, $60, $55, $2B, $BC, $4B, $CF, $75, $6D, $85, $25, $92, $5B, $51, $7E, $04, $15, $83, $B3, $DC, $54, $8C, $A9, $C0, $D8, $59, $DD, $49, $B6, $2C, $61, $B8, $38, $A8, $DE, $94, $09, $AB, $A8, $AB, $C1, $E4, $16, $50, $32, $2D, $BD, $9E, $4D, $BA, $F2, $A1, $10, $69, $65, $55, $A4, $91, $13, $3F, $3E, $DF, $26, $66, $A1, $66, $55, $12,
    $3B, $C4, $56, $5C, $97, $E2, $32, $15, $4A, $B7, $7C, $A5, $38, $5F, $5B, $AF, $54, $AC, $CE, $40, $85, $16, $1C, $F3, $B6, $8B, $3D, $E8, $C6, $B6, $04, $1C, $AC, $06, $DB, $CD, $21, $88, $66, $F4, $84, $D3, $32, $61, $F5, $2D, $1C, $66, $A3, $39, $D2, $F7, $59, $95, $1F, $5C, $90, $BE, $7C, $8C, $6A, $D9, $EA, $D2, $DD, $1B, $96, $AD, $48, $80, $8C, $61, $EE, $72, $B1, $4D,
    $5D, $AE, $3C, $DF, $32, $B1, $2A, $B7, $CB, $28, $59, $25, $0D, $F9, $24, $1B, $10, $F5, $D5, $5C, $58, $9D, $57, $37, $32, $07, $05, $01, $F4, $82, $53, $52, $37, $48, $47, $61, $73, $9D, $B3, $D6, $DB, $ED, $C2, $B1, $E3, $89, $07, $9C, $8C, $64, $34, $67, $45, $EF, $A8, $E1, $D7, $5D, $68, $9F, $3A, $0A, $D2, $CF, $59, $A5, $2D, $FF, $37, $AD, $5A, $39, $42, $C5, $D8, $6D,
    $DE, $BD, $C1, $EC, $44, $4C, $56, $6B, $70, $42, $C0, $ED, $32, $6B, $E3, $D7, $71, $20, $14, $67, $B0, $48, $DD, $56, $BE, $20, $BF, $3C, $D5, $DD, $58, $C5, $8E, $AC, $95, $34, $9E, $47, $78, $D2, $17, $61, $69, $66, $B6, $2D, $68, $61, $B5, $AA, $5F, $51, $05, $4E, $05, $B4, $D1, $CF, $47, $5F, $EC, $5B, $32, $B5, $BA, $7A, $D9, $75, $63, $3A, $57, $0F, $E5, $F6, $F9, $8E,
    $30, $3C, $BB, $5F, $24, $9C, $9A, $D5, $1C, $53, $0C, $22, $F9, $8E, $97, $AF, $1E, $E9, $CA, $BF, $A0, $7A, $49, $7D, $52, $EA, $26, $4B, $AC, $86, $CD, $D9, $3F, $4D, $9B, $0C, $42, $C3, $4E, $71, $99, $B8, $C5, $7C, $58, $D5, $0F, $0A, $5A, $85, $D3, $26, $E3, $53, $FE, $35, $5E, $56, $2D, $B9, $6F, $7C, $C8, $42, $F9, $87, $45, $D6, $2F, $2C, $1C, $89, $11, $F6, $39, $8D,
    $CD, $86, $73, $20, $F7, $18, $EE, $AC, $6A, $B9, $E2, $74, $F7, $3D, $2D, $07, $48, $57, $5E, $A7, $13, $6A, $28, $46, $55, $E7, $89, $D5, $88, $CC, $6A, $B5, $29, $28, $E9, $BC, $4C, $2A, $56, $A9, $FE, $8A, $39, $9D, $5B, $60, $CE, $9C, $60, $65, $FC, $B8, $51, $1C, $75, $73, $AA, $71, $AD, $08, $69, $D7, $1D, $D2, $4C, $E6, $7E, $E3, $D4, $57, $4A, $6C, $33, $45, $0D, $15,
    $C6, $34, $A7, $81, $D4, $75, $15, $9D, $E6, $C5, $7F, $C4, $8F, $AD, $F2, $FE, $1D, $3A, $65, $79, $3D, $1A, $C5, $4F, $00, $91, $68, $34, $C5, $37, $E7, $F2, $68, $74, $B8, $18, $E6, $CB, $F2, $15, $11, $76, $B0, $FA, $32, $E5, $51, $19, $E5, $6C, $08, $BC, $A0, $98, $3E, $5F, $6F, $74, $1A, $C2, $E6, $94, $C9, $2A, $62, $06, $43, $9B, $4D, $9F, $2C, $58, $F8, $15, $C0, $9A,
    $BE, $F2, $74, $70, $21, $39, $89, $45, $30, $2F, $AF, $F2, $DB, $5F, $63, $B1, $DF, $66, $1B, $E6, $B9, $C7, $94, $55, $3B, $63, $3B, $D7, $4E, $28, $4C, $35, $D7, $54, $A6, $FD, $DF, $03, $7A, $9C, $77, $E3, $F1, $9B, $58, $A3, $36, $18, $BD, $22, $5A, $8F, $97, $74, $8A, $B0, $CD, $B0, $FC, $A3, $6D, $62, $B5, $59, $F9, $64, $FE, $7F, $98, $55, $8E, $DD, $46, $DB, $CE, $39,
    $2B, $F6, $3D, $33, $89, $FC, $C6, $2E, $AB, $E8, $B3, $EA, $8A, $D0, $8A, $0B, $A8, $5A, $05, $CF, $77, $58, $92, $4F, $94, $1F, $C0, $41, $7F, $FD, $9C, $A0, $FC, $11, $23, $A9, $BD, $0A, $56, $BF, $F1, $90, $D1, $E4, $BF, $88, $40, $48, $B5, $7C, $CA, $2E, $A7, $57, $54, $D6, $F7, $95, $B0, $0A, $E0, $69, $75, $86, $0F, $9F, $D5, $7F, $15, $41, $FE, $59, $DB, $97, $49, $F1,
    $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $D2, $20, $B8, $AA, $AE, $6E, $46, $DA, $52, $03, $31, $E8, $6C, $84, $CF, $96, $47, $84, $EB, $CD, $24, $B5, $A9, $30, $F4, $39, $40, $B2, $D2, $E7, $CB, $13, $F2, $6E, $02, $AC, $BE, $0C, $66, $DE, $53, $77, $FA, $4F, $F8, $B4, $7A, $6D, $FE, $3B, $E3, $A7,
    $2A, $34, $BD, $36, $1E, $9F, $97, $BE, $F0, $CC, $78, $FC, $54, $EF, $FF, $CC, $A3, $D1, $68, $D9, $A9, $5E, $4A, $06, $C6, $6F, $3D, $47, $63, $11, $2A, $56, $C5, $B7, $FD, $DB, $B7, $15, $5A, $49, $7E, $77, $E4, $D3, $1D, $88, $DF, $3D, $4B, $34, $4D, $2F, $1A, $E8, $7A, $E4, $74, $72, $E0, $E6, $57, $AC, $C7, $51, $F0, $C4, $6B, $9E, $8A, $AA, $56, $16, $D7, $DD, $F7, $2E,
    $64, $29, $2B, $66, $B7, $6E, $2B, $F7, $02, $88, $95, $C4, $12, $70, $85, $E0, $8B, $1F, $CE, $26, $DC, $B3, $6C, $31, $ED, $87, $46, $27, $AD, $81, $EC, $E5, $96, $C1, $BB, $7F, $E1, $69, $5D, $CB, $54, $62, $D8, $F6, $7D, $DB, $5F, $2B, $49, $00, $9C, $5F, $34, $BE, $FB, $97, $76, $4D, $A0, $EC, $B8, $2D, $97, $92, $2B, $1C, $B4, $86, $06, $2D, $B1, $C7, $65, $A9, $50, $F9,
    $D2, $49, $6B, $CE, $86, $64, $DA, $04, $B6, $99, $90, $7A, $CE, $53, $3A, $F6, $9C, $0E, $9E, $05, $B2, $41, $19, $C0, $2C, $61, $4F, $3C, $1E, $EC, $26, $AB, $B6, $DB, $72, $2B, $89, $EC, $58, $68, $35, $A2, $AE, $CF, $2E, $49, $B9, $0C, $30, $FF, $8A, $8D, $D6, $E0, $E2, $0E, $0F, $69, $81, $BD, $62, $58, $34, $EA, $31, $17, $2B, $06, $78, $61, $98, $77, $51, $BA, $3C, $63,
    $BD, $40, $19, $8C, $9F, $11, $AB, $B6, $DB, $72, $2D, $89, $D9, $DD, $7A, $D8, $58, $BD, $D5, $69, $26, $12, $74, $85, $3E, $5A, $CE, $AD, $A6, $CF, $68, $F1, $94, $6C, $39, $FB, $58, $C7, $D7, $89, $62, $4E, $BC, $2B, $A9, $EC, $CF, $42, $1E, $E5, $A7, $E8, $60, $DE, $1B, $E4, $D5, $02, $78, $B7, $15, $16, $4C, $FB, $B2, $2C, $40, $53, $09, $BF, $CC, $48, $C8, $E8, $A1, $C7,
    $14, $D6, $DE, $10, $18, $B3, $3A, $16, $5B, $3B, $DE, $53, $E2, $20, $CC, $3C, $8B, $99, $79, $C7, $B8, $E5, $B2, $C7, $76, $F4, $D1, $86, $58, $EC, $85, $B4, $F4, $D9, $6A, $43, $9E, $02, $FC, $E6, $81, $AB, $FC, $B1, $4B, $7F, $8F, $C5, $56, $7D, $92, $93, $9E, $D5, $01, $8B, $76, $C7, $36, $8C, $97, $63, $79, $F4, $8A, $05, $DB, $41, $D5, $8D, $49, $45, $C4, $A2, $6D, $C3,
    $4E, $6D, $01, $68, $9B, $FB, $85, $95, $D5, $40, $E5, $B2, $1D, $B1, $D8, $C6, $39, $A3, $24, $BB, $F4, $D1, $A2, $DA, $DA, $59, $EF, $A6, $89, $A1, $9A, $C4, $75, $63, $3A, $E6, $78, $B4, $00, $E8, $01, $14, $81, $AB, $07, $30, $AD, $95, $87, $37, $AB, $C5, $19, $B1, $0E, $41, $4E, $5A, $56, $6F, $1B, $B1, $16, $4B, $D3, $94, $2C, $F8, $9B, $15, $6C, $31, $BB, $CE, $B1, $4F,
    $C5, $D1, $EE, $D9, $15, $8D, $FC, $EA, $45, $62, $4F, $29, $6C, $0E, $D3, $FC, $CC, $26, $AB, $5F, $B5, $D9, $C3, $F1, $0A, $0F, $BB, $AA, $74, $C8, $D8, $60, $AE, $56, $4E, $3F, $64, $D4, $82, $4D, $C0, $56, $82, $1F, $15, $72, $49, $76, $98, $F2, $52, $3C, $CC, $CF, $06, $8C, $2B, $49, $06, $D3, $B1, $AA, $4B, $71, $15, $0B, $53, $96, $EC, $69, $8A, $09, $7D, $69, $5A, $1F,
    $81, $63, $19, $B0, $AA, $F5, $D4, $34, $2B, $AB, $AB, $1C, $41, $8E, $EF, $27, $C0, $0B, $AB, $1F, $61, $89, $53, $F3, $17, $36, $E0, $BF, $C3, $3C, $8C, $2E, $D7, $ED, $A6, $AD, $41, $9F, $1F, $53, $4E, $87, $4C, $44, $73, $F6, $DD, $28, $76, $F1, $A1, $AA, $96, $77, $16, $3A, $27, $A7, $B5, $00, $7A, $E7, $BE, $AA, $3E, $E1, $50, $01, $A6, $EE, $ED, $08, $A4, $28, $A9, $93,
    $1B, $6F, $9B, $90, $13, $1E, $4D, $4C, $4E, $92, $B5, $4A, $2A, $3A, $F4, $DB, $90, $B2, $8F, $3A, $CD, $84, $ED, $8A, $FB, $A8, $21, $B8, $62, $61, $55, $B3, $B1, $8A, $E9, $9E, $9B, $47, $05, $F5, $40, $8F, $CA, $B5, $EC, $1E, $CA, $50, $D1, $21, $71, $F0, $C7, $55, $C7, $DA, $53, $B1, $AA, $63, $DD, $A3, $DD, $0A, $0A, $9F, $5D, $EA, $B6, $8D, $D6, $9F, $13, $0F, $B3, $07,
    $CA, $41, $DC, $96, $44, $3E, $6C, $2F, $26, $E8, $A1, $0F, $0A, $49, $86, $BC, $2C, $45, $C9, $71, $22, $03, $3B, $0A, $BA, $2C, $A7, $BB, $30, $35, $35, $7D, $E3, $18, $81, $9E, $3A, $57, $5C, $5D, $4A, $56, $51, $7C, $60, $95, $E5, $57, $0C, $68, $8B, $53, $F3, $A5, $0F, $49, $71, $DA, $77, $8C, $78, $46, $FD, $99, $1C, $50, $DA, $55, $60, $3D, $99, $CC, $14, $C2, $7E, $07,
    $4F, $F1, $0D, $69, $7A, $F6, $B1, $66, $90, $A5, $B2, $E4, $25, $43, $94, $A5, $91, $AB, $52, $94, $19, $61, $C2, $23, $52, $9A, $80, $F4, $AC, $62, $BB, $BB, $22, $57, $01, $8C, $35, $7C, $EC, $41, $F7, $6F, $85, $A9, $BA, $BA, $11, $54, $6A, $2F, $19, $E2, $47, $D6, $15, $35, $43, $7B, $00, $E5, $BB, $86, $5B, $07, $BB, $B5, $16, $14, $A7, $63, $35, $DC, $AB, $A4, $6C, $69,
    $6A, $56, $51, $94, $E5, $40, $19, $C5, $35, $BE, $92, $7C, $36, $08, $29, $3D, $0C, $3B, $6C, $EE, $06, $AB, $54, $D2, $A1, $79, $B1, $59, $00, $DB, $F3, $6C, $0F, $2C, $A0, $42, $46, $4F, $63, $2C, $2A, $2B, $38, $74, $0D, $07, $A9, $F2, $0C, $D5, $B4, $43, $39, $40, $4B, $9E, $69, $73, $CC, $23, $27, $FB, $76, $63, $B5, $78, $53, $B3, $4D, $40, $51, $55, $B2, $8F, $F5, $94,
    $E8, $41, $6F, $35, $BB, $FE, $56, $39, $EE, $30, $73, $56, $A9, $DA, $02, $56, $CF, $9F, $78, $1C, $DB, $59, $8F, $91, $40, $71, $B3, $D9, $57, $67, $C3, $FF, $8D, $D3, $CE, $F1, $17, $64, $A2, $C8, $71, $BE, $4C, $58, $5D, $E3, $94, $A5, $54, $95, $2C, $73, $B2, $1A, $33, $8B, $35, $75, $93, $55, $7D, $9D, $38, $F1, $16, $7A, $9A, $7F, $1C, $C5, $D5, $38, $65, $76, $93, $D3,
    $B3, $91, $EC, $3A, $8E, $A2, $45, $7A, $2B, $B4, $EA, $54, $D3, $C4, $3A, $FB, $52, $51, $6D, $01, $1B, $64, $2E, $22, $C5, $FA, $3A, $58, $9D, $8B, $0E, $EF, $F6, $A9, $E3, $A2, $9B, $4D, $56, $55, $25, $91, $D5, $98, $19, $86, $89, $BB, $F6, $9A, $8F, $FE, $3C, $5D, $78, $49, $1A, $56, $49, $CF, $3A, $93, $8B, $61, $52, $F9, $A1, $2B, $1E, $EB, $EA, $36, $F3, $A6, $71, $F3,
    $ED, $EE, $B2, $8A, $CD, $2F, $30, $8C, $46, $06, $57, $81, $A7, $18, $C7, $19, $A2, $13, $67, $BA, $A9, $4C, $38, $81, $BC, $17, $48, $F4, $11, $4F, $59, $E1, $5E, $B2, $A7, $5D, $D1, $92, $39, $E0, $CC, $A5, $0B, $A6, $75, $D6, $D3, $B2, $8A, $73, $8D, $D3, $B1, $CA, $03, $CE, $F2, $1C, $00, $A7, $7C, $5B, $A8, $CC, $39, $86, $FC, $D2, $50, $18, $D0, $5B, $AC, $DE, $79, $D7,
    $80, $E7, $1B, $B9, $9D, $EA, $F0, $9C, $B2, $2B, $42, $18, $CE, $B6, $65, $74, $3E, $86, $2B, $52, $69, $54, $59, $A0, $93, $35, $58, $24, $EB, $30, $DD, $FA, $CC, $64, $55, $55, $52, $EF, $60, $3A, $4F, $12, $26, $03, $D3, $D4, $A4, $A1, $AB, $A9, $24, $97, $3D, $B2, $4A, $88, $6B, $E1, $75, $74, $0E, $BE, $26, $EB, $33, $0D, $E9, $80, $E4, $44, $FB, $69, $D1, $D1, $65, $3D,
    $FF, $46, $49, $D3, $B4, $EB, $C0, $F3, $DD, $6A, $47, $E9, $B2, $71, $A0, $FE, $10, $15, $A8, $B7, $F6, $A3, $A8, $7D, $F0, $8C, $BE, $EE, $41, $A6, $6A, $45, $21, $70, $A1, $80, $21, $6D, $26, $AB, $CA, $92, $5B, $0D, $0E, $05, $D0, $9E, $B7, $61, $5F, $11, $6A, $4C, $2B, $2B, $9F, $9A, $55, $A3, $8E, $DD, $E7, $E2, $03, $78, $07, $70, $86, $55, $0A, $FE, $95, $01, $E7, $EE,
    $93, $3D, $54, $B3, $E6, $B0, $67, $CA, $0C, $34, $1F, $ED, $05, $DD, $66, $55, $DB, $47, $AD, $D0, $89, $C1, $EB, $71, $10, $D2, $C3, $6D, $26, $41, $9E, $C9, $C1, $C9, $FC, $A6, $99, $15, $23, $96, $B5, $9B, $9D, $B7, $8E, $C3, $A2, $45, $05, $3D, $6B, $2D, $22, $CA, $AA, $92, $85, $38, $DA, $89, $8F, $2E, $2A, $2A, $A9, $9C, $7B, $3C, $CF, $28, $D6, $FC, $7D, $74, $26, $2A,
    $57, $DC, $72, $F7, $AC, $C5, $D8, $6A, $03, $F9, $97, $DA, $FF, $EF, $9A, $08, $B0, $5A, $BE, $C4, $0D, $B4, $DE, $37, $17, $0C, $29, $08, $85, $7A, $A2, $43, $D5, $42, $9B, $C6, $CF, $54, $93, $E1, $60, $ED, $8A, $43, $AD, $DC, $60, $D3, $41, $E4, $77, $F6, $93, $87, $1F, $DA, $3B, $E5, $EE, $21, $DC, $68, $9E, $EF, $43, $37, $1B, $61, $99, $CE, $EA, $25, $E9, $F8, $1A, $B7,
    $B7, $D9, $98, $78, $6E, $31, $59, $55, $96, $9C, $22, $B9, $00, $CC, $9B, $29, $6C, $33, $45, $29, $8A, $53, $56, $53, $AB, $84, $43, $AD, $C5, $9D, $D0, $AC, $FA, $9C, $8C, $1B, $FD, $BC, $A5, $80, $98, $2A, $70, $EA, $55, $E5, $9E, $16, $EA, $98, $43, $B3, $32, $03, $9B, $73, $42, $4C, $3F, $A8, $BF, $D8, $84, $1F, $D9, $A7, $71, $CA, $EE, $0B, $95, $43, $D3, $BD, $0D, $5C,
    $E4, $DA, $D4, $81, $3B, $92, $80, $8D, $AA, $A4, $36, $F6, $99, $8D, $55, $AD, $58, $14, $BB, $D9, $47, $CB, $0E, $AB, $4D, $62, $F6, $5C, $5F, $2A, $14, $DC, $5A, $F9, $8E, $73, $2E, $13, $8E, $65, $8B, $0F, $C5, $8F, $6F, $A8, $CC, $D6, $37, $30, $D2, $A9, $DC, $88, $9F, $DC, $3C, $C6, $ED, $7C, $81, $21, $0E, $7D, $94, $61, $2B, $0E, $C7, $8F, $6C, $A9, $B2, $F4, $03, $63,
    $7F, $8F, $1F, $5B, $46, $AA, $DA, $F0, $68, $34, $37, $75, $49, $7D, $CC, $A6, $E3, $F1, $F8, $8E, $1F, $C6, $1B, $5F, $B4, $F5, $CA, $F5, $C7, $E2, $87, $7F, $4A, $35, $54, $D7, $4A, $1D, $C2, $18, $C5, $16, $AD, $0C, $34, $CC, $23, $E6, $FE, $7A, $24, $1E, $3F, $F4, $D3, $08, $E9, $59, $82, $E8, $7F, $6C, $9D, $33, $48, $EC, $7A, $CB, $7D, $A2, $39, $9B, $38, $0C, $F0, $DF,
    $F9, $60, $DF, $05, $CC, $B6, $AA, $CE, $0E, $78, $2D, $CA, $0B, $A1, $A4, $DD, $D5, $F9, $3F, $86, $FD, $96, $81, $7D, $F8, $9C, $52, $67, $36, $DB, $28, $8F, $C7, $27, $FF, $9F, $66, $F5, $19, $24, $85, $0B, $F3, $FE, $FC, $BD, $E8, $2F, $87, $35, $1F, $DD, $ED, $8D, $A5, $45, $06, $74, $62, $63, $47, $D0, $27, $A5, $FB, $90, $D4, $FA, $7F, $BD, $77, $B4, $A6, $87, $CF, $88,
    $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $15, $DE, $54, $36, $7C, $64, $04, $AF, $2A, $1B, $3E, $32, $80, $77, $95, $0D, $1F, $DE, $9B, $BF, $9B, $CA, $46, $CF, $B2, $8A, $54, $A1, $2C, $6A, $2D, $88, $74, $98, $9F, $56, $AA, $67, $C8, $9A, $BF, $1A, $1A, $8E, $AF, $EA, $99, $D5, $87,
    $5C, $50, $5B, $3B, $3E, $DB, $C4, $E9, $3F, $12, $02, $56, $04, $33, $A1, $22, $B4, $BE, $23, $5D, $7C, $80, $5A, $0B, $22, $35, $70, $3D, $67, $32, $D5, $D2, $B0, $DC, $CB, $59, $5C, $BB, $69, $E2, $07, $80, $B6, $40, $96, $49, $3D, $62, $AE, $F3, $F5, $48, $05, $5F, $9B, $9A, $26, $EA, $62, $45, $A6, $B4, $2E, $02, $38, $DD, $0C, $09, $F7, $C0, $5B, $4C, $11, $AE, $62, $D5,
    $9A, $F6, $0B, $D2, $69, $67, $E8, $F7, $6D, $D1, $F0, $98, $A0, $E3, $73, $55, $C9, $82, $A9, $BB, $AF, $34, $B5, $F2, $35, $25, $34, $61, $DA, $47, $C6, $01, $B8, $B2, $4C, $19, $3C, $63, $90, $BA, $C4, $8D, $8A, $10, $38, $D6, $C6, $12, $EC, $22, $7F, $3C, $5C, $3F, $3F, $DD, $32, $20, $87, $16, $44, $6A, $CC, $00, $38, $A2, $F7, $6E, $86, $96, $DE, $29, $4A, $C0, $9D, $8A,
    $70, $28, $7F, $48, $CF, $EE, $B0, $3A, $0F, $97, $38, $5B, $6E, $FE, $00, $A8, $56, $C6, $F5, $3A, $62, $91, $03, $A1, $AC, $DE, $F2, $C4, $2A, $92, $FA, $BC, $DC, $95, $0A, $25, $AB, $B8, $F3, $80, $97, $55, $A9, $76, $2D, $88, $94, $08, $44, $A3, $B8, $34, $B5, $47, $34, $EA, $1A, $4B, $5C, $EF, $12, $95, $9B, $19, $AB, $79, $1D, $D0, $66, $4B, $36, $39, $50, $75, $54, $34,
    $01, $4E, $56, $59, $A0, $B3, $C9, $EA, $74, $3D, $27, $14, $60, $A9, $E9, $AE, $9B, $AC, $F6, $22, $0F, $9E, $E3, $4E, $85, $92, $D5, $81, $A9, $42, $8E, $5F, $25, $C0, $BA, $C2, $D3, $40, $4E, $84, $00, $A3, $78, $8F, $E3, $46, $24, $CD, $0B, $DF, $07, $30, $F0, $86, $2D, $B8, $88, $38, $3A, $27, $6C, $C5, $DE, $C2, $C0, $80, $DB, $35, $C3, $CB, $8A, $8A, $22, $12, $AB, $67,
    $AD, $AC, $56, $93, $FF, $92, $17, $BF, $C7, $C0, $81, $06, $CF, $D6, $1E, $59, $AD, $17, $C9, $4E, $C5, $CE, $D1, $1E, $53, $04, $65, $A2, $65, $41, $E1, $D4, $8E, $B0, $9E, $2F, $65, $62, $D7, $88, $42, $B9, $27, $34, $EE, $A7, $BA, $0D, $B3, $E8, $12, $67, $63, $21, $FF, $20, $8C, $EA, $29, $07, $B8, $21, $17, $FC, $C4, $0C, $10, $15, $68, $94, $32, $D0, $4A, $AC, $D2, $78,
    $37, $2B, $AB, $18, $27, $F0, $B9, $60, $D5, $29, $65, $81, $AB, $BA, $59, $C4, $4B, $2E, $D9, $1D, $E1, $AC, $3A, $94, $25, $3E, $05, $78, $E2, $81, $A3, $8C, $B4, $2C, $34, $A5, $76, $84, $F3, $15, $C7, $32, $61, $75, $7E, $A7, $D9, $D0, $84, $78, $95, $7E, $0B, $3A, $49, $CD, $3A, $26, $32, $AE, $F3, $17, $46, $EC, $DE, $1A, $CB, $B1, $18, $84, $B5, $52, $B3, $B3, $DA, $CC,
    $22, $20, $64, $56, $23, $A5, $23, $D7, $75, $60, $20, $18, $63, $55, $21, $BA, $D0, $20, $62, $DE, $2A, $B8, $ED, $55, $B2, $5A, $9D, $2E, $32, $8E, $22, $33, $2D, $0B, $A5, $76, $84, $CC, $28, $69, $D9, $7D, $8D, $36, $9E, $E7, $89, $D5, $F5, $B2, $F9, $12, $AC, $4E, $67, $7D, $73, $21, $79, $DB, $B9, $56, $E7, $AA, $DD, $B2, $5E, $F4, $0F, $1E, $B6, $67, $65, $75, $11, $CB,
    $E2, $2C, $B3, $8A, $28, $21, $1D, $CD, $6B, $61, $35, $53, $2D, $0B, $85, $76, $84, $8C, $3A, $45, $22, $EB, $34, $AC, $16, $93, $1D, $87, $72, $B5, $C0, $62, $14, $03, $A9, $E0, $D1, $CD, $E1, $36, $78, $1E, $E0, $2F, $FD, $A0, $ED, $68, $4B, $C6, $72, $16, $1B, $98, $57, $D4, $33, $24, $B3, $8A, $39, $DD, $D7, $38, $59, $D5, $6E, $40, $83, $B0, $00, $4E, $29, $0B, $6F, $AC,
    $7E, $E1, $81, $D5, $8C, $B5, $2C, $14, $DA, $11, $DD, $64, $75, $99, $F0, $ED, $CF, $01, $EC, $13, $3B, $B7, $03, $B0, $38, $C6, $50, $9B, $F5, $65, $DB, $9C, $2B, $3C, $DB, $CD, $9F, $A9, $0E, $D5, $CD, $89, $26, $AB, $E8, $54, $76, $84, $1C, $AC, $86, $5E, $92, $4B, $4B, $BD, $55, $5D, $7A, $56, $9F, $D4, $31, $18, $E6, $F1, $37, $32, $6A, $48, $47, $52, $C6, $5A, $16, $4E,
    $ED, $08, $0B, $E6, $C4, $E3, $71, $8C, $F4, $7A, $4E, $73, $51, $1F, $F0, $C2, $EA, $6E, $71, $9B, $3F, $02, $3C, $E6, $FB, $CA, $CC, $5E, $6A, $16, $40, $A3, $EE, $EA, $5C, $F5, $93, $5F, $E2, $31, $DD, $60, $B5, $2F, $8D, $79, $B5, $B0, $3A, $A9, $66, $C9, $5D, $74, $29, $32, $63, $D5, $96, $AA, $58, $9F, $44, $B6, $BF, $4A, $47, $52, $A6, $5A, $16, $0A, $ED, $88, $EE, $F6,
    $56, $BF, $03, $5C, $A5, $1B, $5B, $C8, $D8, $21, $7D, $63, $B1, $3A, $57, $15, $EC, $99, $59, $4A, $5B, $96, $E2, $9B, $B2, $8A, $15, $FF, $B9, $6E, $61, $15, $BD, $E8, $67, $EF, $69, $DD, $61, $95, $C5, $B9, $9D, $4A, $3B, $06, $C8, $54, $CB, $42, $A1, $1D, $D1, $5D, $56, $27, $F3, $47, $8F, $B4, $A5, $93, $1E, $54, $38, $57, $48, $C0, $03, $54, $12, $0B, $6E, $10, $6A, $42,
    $8C, $55, $D4, $5C, $99, $60, $61, $35, $0E, $9B, $68, $F6, $E6, $CC, $58, $BD, $CB, $C5, $0C, $2A, $05, $AB, $ED, $CB, $D2, $DF, $63, $A6, $5A, $16, $65, $D9, $67, $35, $F0, $88, $DC, $EA, $8A, $EA, $45, $D8, $FD, $F5, $F2, $E0, $5D, $13, $E7, $6A, $AD, $85, $55, $9E, $A5, $FC, $2A, $D9, $7C, $CB, $60, $15, $83, $A1, $EF, $15, $C8, $AC, $EE, $E3, $96, $3A, $33, $56, $2D, $BD,
    $D5, $77, $34, $42, $F6, $50, $DA, $BA, $9A, $A9, $96, $85, $42, $3B, $A2, $DB, $FE, $EA, $46, $F1, $8E, $3A, $3F, $F2, $38, $73, $D5, $61, $38, $57, $18, $99, $B7, $83, $6D, $A2, $36, $D8, $18, $93, $55, $14, $F8, $99, $2E, $B3, $5A, $52, $91, $DB, $5D, $56, $C9, $3B, $9D, $6B, $68, $E5, $30, $07, $66, $43, $FC, $C4, $8F, $0E, $57, $28, $53, $2D, $0B, $85, $76, $44, $77, $59,
    $1D, $4C, $1E, $06, $23, $94, $9F, $6D, $F2, $36, $1B, $1B, $91, $3D, $65, $FC, $E3, $1F, $B6, $39, $D7, $CA, $AA, $4E, $FC, $EA, $46, $99, $D5, $A1, $8B, $23, $69, $59, $65, $A3, $A6, $CA, $54, $9E, $D5, $61, $62, $58, $8D, $3F, $AA, $88, $EB, $F1, $18, $3A, $EC, $41, $C8, $99, $6A, $59, $28, $B4, $23, $BA, $CB, $2A, $19, $AA, $8D, $D3, $F4, $90, $F7, $89, $53, $E2, $5C, $35,
    $1A, $7F, $B4, $18, $AA, $83, $FB, $39, $85, $9C, $55, $6D, $3E, $6B, $00, $82, $D5, $1E, $A2, $2F, $74, $65, $F5, $2C, $3F, $30, $70, $2B, $15, $AB, $D3, $4C, $4F, $05, $85, $4C, $C6, $6A, $DA, $02, $C7, $8C, $5F, $C6, $5A, $16, $4E, $ED, $88, $6E, $B2, $8A, $8A, $80, $0B, $32, $9A, $BC, $19, $28, $8F, $57, $B0, $93, $DA, $8C, $1B, $A5, $38, $50, $D5, $25, $56, $C3, $9D, $76,
    $56, $EF, $A5, $66, $75, $2F, $13, $73, $09, $9C, $01, $AF, $63, $AB, $08, $50, $DF, $F1, $A9, $A3, $9E, $65, $AA, $65, $A1, $D0, $8E, $E8, $66, $5D, $45, $A7, $E8, $EF, $BA, $D5, $B5, $DF, $4C, $1D, $E9, $31, $20, $F4, $A6, $D4, $08, $51, $4B, $04, $0E, $BE, $37, $6C, $31, $EA, $5B, $4C, $D5, $24, $56, $99, $AA, $A9, $69, $01, $46, $2C, $2D, $90, $58, $75, $4A, $59, $D0, $8E,
    $E5, $76, $D5, $E7, $F7, $40, $66, $B5, $25, $CE, $91, $A3, $60, $35, $8F, $4E, $8D, $05, $DA, $6E, $BA, $7C, $2F, $F0, $FE, $3D, $64, $8A, $6A, $7E, $BC, $3B, $AC, $8E, $31, $CF, $97, $DC, $E2, $C9, $0E, $A0, $73, $55, $28, $FE, $98, $6D, $1E, $6E, $CE, $AF, $1A, $7D, $80, $60, $35, $6E, $4A, $BE, $3D, $A7, $CF, $E9, $14, $5D, $D0, $72, $DA, $F9, $9F, $3B, $1B, $9D, $FE, $AA,
    $F1, $AC, $96, $79, $80, $06, $58, $97, $D3, $E3, $A4, $62, $8C, $99, $B1, $96, $85, $53, $3B, $A2, $7B, $AC, $CA, $AA, $1B, $70, $CE, $D3, $D4, $25, $71, $AE, $D6, $99, $5D, $03, $9F, $B5, $4E, $2C, $D0, $AC, $AC, $6A, $87, $C1, $FD, $5B, $80, $82, $55, $6D, $54, $92, $29, $82, $61, $BF, $E5, $8D, $D5, $02, $AA, $9A, $71, $51, $55, $17, $32, $D5, $B2, $70, $6A, $47, $D8, $7E,
    $27, $2E, $D7, $5B, $A9, $BE, $25, $58, $7F, $3D, $49, $EC, $E1, $3B, $45, $7D, $CB, $86, $53, $A9, $EE, $41, $19, $3B, $57, $5A, $F8, $8B, $9D, $F1, $E3, $DB, $26, $0A, $F3, $D1, $C3, $F0, $F8, $F2, $D1, $F9, $C3, $DD, $6F, $59, $54, $2A, $E8, $DC, $A9, $53, $CA, $02, $49, $AA, $3D, $76, $6A, $1D, $79, $0D, $E5, $AC, $8C, $2E, $97, $11, $CC, $7D, $48, $DE, $9F, $CC, $45, $CD,
    $8C, $41, $DA, $9B, $87, $89, $E6, $98, $79, $9A, $43, $59, $D0, $8B, $73, $F5, $9A, $81, $CE, $EC, $9B, $1F, $BB, $BE, $CB, $6C, $5D, $5F, $78, $FE, $D6, $6D, $71, $AE, $5E, $2F, $F2, $BD, $4C, $AF, $FC, $EB, $F8, $95, $DC, $E5, $7C, $36, $A7, $FC, $94, $34, $6C, $6F, $6E, $40, $29, $E9, $94, $8B, $FF, $A5, $1B, $26, $46, $37, $B9, $AA, $BC, $4C, $7F, $A3, $59, $1D, $8C, $F6,
    $FE, $D1, $AE, $BA, $5F, $51, $30, $12, $A6, $BC, $F1, $B5, $80, $BA, $CB, $1E, $B5, $2D, $FF, $45, $4C, $35, $BF, $5A, $3D, $1B, $A3, $FD, $07, $30, $EC, $C9, $7F, $80, $55, $2D, $67, $CA, $A1, $07, $00, $6D, $B7, $B6, $8E, $D1, $B5, $FF, $06, $06, $CD, $A8, $AD, $CD, $D1, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0,
    $E1, $C3, $87, $0F, $1F, $FF, $71, $0C, $C4, $80, $80, $11, $3E, $0F, $59, $C6, $D0, $E7, $00, $C9, $4A, $9F, $87, $2C, $23, $7C, $C2, $A7, $F5, $55, $60, $66, $3C, $7E, $EA, $3F, $90, $56, $26, $EF, $C3, $9A, $9A, $99, $95, $D6, $C5, $14, $A3, $7E, $FE, $BB, $A1, $E1, $D0, $57, $5D, $5B, $68, $33, $F7, $DA, $1A, $5D, $D3, $22, $87, $2E, $0C, $CE, $F4, $4E, $6A, $8E, $37, $34,
    $9C, $5F, $57, $EE, $FD, $88, $11, $0B, $66, $7F, $FC, $EA, $96, $57, $44, $8A, $0A, $BA, $A8, $29, $11, $F8, $8D, $AF, $A9, $DC, $68, $9E, $A0, $D7, $4D, $80, $27, $07, $AE, $03, $34, $7B, $5B, $07, $16, $8E, $44, $A4, $97, $82, $31, $D0, $33, $69, $AC, $45, $22, $4D, $7C, $73, $A8, $B0, $A8, $97, $74, $E0, $B2, $24, $B4, $1F, $C7, $04, $75, $17, $72, $BD, $DE, $3D, $8D, $0C,
    $4A, $6C, $7F, $15, $4B, $01, $7A, $6D, $A3, $A9, $EC, $CF, $8E, $EA, $C2, $B1, $41, $42, $E0, $8B, $A9, $85, $9F, $B4, $49, $41, $53, $05, $2F, $01, $A6, $93, $7F, $47, $76, $42, $42, $AC, $4A, $A5, $F1, $9F, $F0, $F4, $C6, $81, $39, $76, $DD, $82, $B2, $DF, $68, $1C, $6D, $E2, $CC, $07, $A2, $89, $B2, $00, $DC, $76, $23, $60, $48, $B7, $AC, $AA, $6C, $E0, $C5, $72, $16, $3F,
    $60, $31, $D0, $67, $F8, $82, $C4, $83, $00, $F8, $66, $4B, $1B, $01, $EE, $B9, $54, $3F, $C7, $4A, $CB, $5A, $5B, $B0, $6D, $F6, $50, $93, $14, $D7, $D9, $9C, $F9, $C1, $FB, $01, $6E, $E2, $F2, $84, $9D, $52, $54, $D1, $71, $46, $AA, $A6, $AD, $04, $38, $62, $61, $95, $65, $63, $93, $6B, $60, $70, $BF, $6D, $09, $30, $69, $37, $CD, $34, $C7, $E8, $02, $80, $D3, $9A, $3B, $AB,
    $EF, $B4, $1B, $7B, $58, $F4, $D3, $00, $11, $00, $8F, $2B, $DF, $3F, $30, $AF, $B0, $B2, $AE, $6E, $90, $2B, $AB, $DF, $89, $B3, $6C, $C9, $32, $A9, $D3, $E8, $0B, $A7, $19, $4A, $21, $E3, $8C, $4B, $E4, $09, $3A, $69, $E5, $FB, $CD, $8C, $D6, $CC, $31, $36, $31, $4A, $32, $E0, $60, $15, $6E, $06, $2C, $55, $DD, $CE, $AA, $16, $AA, $A0, $0B, $E9, $4B, $44, $FC, $8D, $8A, $D5,
    $BE, $49, $B0, $B1, $FA, $3E, $D9, $FA, $9E, $6E, $BD, $00, $A8, $31, $6F, $B1, $49, $0A, $3A, $53, $AD, $0A, $8E, $4C, $6C, $84, $6C, $24, $04, $B7, $20, $A7, $83, $D8, $C4, $A9, $BA, $A6, $63, $74, $53, $4B, $A6, $C6, $F5, $67, $D2, $EA, $98, $79, $FD, $D8, $58, $C4, $FB, $36, $C0, $42, $BE, $D9, $69, $2C, $4C, $47, $56, $23, $91, $5E, $C3, $71, $19, $26, $AC, $36, $8E, $FF,
    $83, $D2, $59, $9E, $1F, $29, $9D, $7C, $C6, $7D, $35, $B7, $C8, $4D, $5C, $63, $1E, $7C, $92, $6C, $5D, $2E, $0F, $EA, $7A, $DE, $A0, $EF, $99, $A3, $14, $D8, $F7, $F8, $28, $5B, $D4, $F3, $C4, $22, $91, $63, $67, $D5, $A1, $65, $A1, $05, $50, $1F, $E1, $AF, $F4, $3D, $48, $06, $5A, $16, $5F, $1B, $21, $2C, $7F, $F2, $F0, $A6, $4C, $D0, $AC, $58, $4B, $5D, $61, $E6, $C2, $BC,
    $05, $D0, $DF, $64, $95, $6E, $60, $14, $42, $87, $6E, $16, $35, $83, $42, $8D, $DB, $CD, $1F, $BB, $F4, $F7, $58, $6C, $D5, $27, $39, $AA, $BE, $E5, $2E, $3D, $36, $60, $CF, $AB, $29, $A1, $A7, $91, $B0, $58, $C9, $6A, $5C, $D9, $E2, $20, $99, $EE, $51, $33, $D2, $B2, $C0, $90, $97, $DE, $C6, $23, $FE, $A2, $6A, $E5, $42, $40, $27, $7C, $CA, $1E, $E2, $12, $B1, $65, $62, $15,
    $E7, $11, $44, $5D, $32, $22, $EA, $0C, $56, $35, $EC, $63, $44, $90, $D8, $29, $D5, $25, $6F, $1B, $A1, $1A, $4B, $AD, $3F, $F4, $05, $23, $2F, $76, $C4, $9D, $07, $FD, $2F, $6B, $F4, $AC, $07, $56, $43, $90, $2E, $29, $79, $A6, $5A, $16, $18, $F7, $CA, $C8, $CA, $25, $5B, $D7, $14, $A4, $B6, $C1, $11, $7A, $C5, $F0, $4D, $68, $B4, $D1, $8A, $E9, $20, $F5, $91, $BF, $5E, $6C,
    $38, $32, $CF, $FC, $A5, $D8, $7C, $AA, $6B, $0A, $56, $F7, $99, $C9, $0E, $E9, $D3, $D8, $A3, $1B, $65, $2B, $BA, $D0, $F2, $C3, $2D, $11, $84, $4D, $EE, $05, $7F, $AD, $51, $71, $FA, $2E, $79, $29, $3F, $0A, $B6, $10, $4F, $49, $41, $FC, $37, $E8, $CE, $6A, $2F, $B2, $FB, $45, $6A, $9A, $32, $D4, $B2, $38, $6A, $3C, $A4, $6E, $E6, $24, $95, $81, $01, $29, $48, $6B, $F8, $A6,
    $D3, $42, $10, $D7, $B2, $F5, $2A, $74, $EC, $FF, $83, $F8, $50, $66, $74, $F7, $73, $78, $C9, $DC, $FF, $70, $42, $C1, $EA, $61, $9E, $0C, $19, $47, $E5, $AA, $5C, $C0, $7A, $E7, $BE, $AA, $3E, $E1, $50, $C1, $02, $11, $72, $2D, $B7, $FF, $7F, $74, $B9, $42, $FF, $65, $1B, $26, $F4, $9C, $B9, $A3, $05, $E0, $62, $6F, $D9, $BE, $58, $04, $23, $D4, $AC, $06, $8E, $A5, $F5, $7F,
    $32, $D5, $B2, $F8, $91, $94, $FA, $93, $99, $33, $50, $EA, $03, $04, $EB, $29, $AD, $94, $54, $7B, $AC, $31, $55, $EF, $D9, $45, $6C, $40, $2E, $A9, $95, $86, $16, $CE, $04, $80, $A3, $48, $6B, $EF, $6B, $E0, $64, $15, $93, $B3, $8B, $E0, $86, $69, $66, $24, $B0, $DC, $1E, $F9, $BF, $9B, $AC, $19, $3C, $B1, $FD, $27, $8D, $2E, $86, $C7, $74, $35, $2D, $90, $5B, $4F, $C9, $EA,
    $23, $18, $E4, $74, $E3, $EB, $60, $0A, $56, $AD, $5A, $16, $91, $58, $EC, $20, $C6, $78, $76, $A4, $8E, $F7, $CB, $54, $CB, $82, $1A, $AB, $FA, $C9, $D1, $2F, $FF, $48, $AA, $59, $65, $B4, $1E, $53, $91, $AA, $7D, $65, $04, $CD, $F6, $96, $1D, $88, $F9, $00, $2F, $37, $D7, $5E, $26, $AE, $BD, $93, $55, $54, $BA, $39, $2A, $06, $43, $60, $B6, $56, $27, $C6, $5A, $44, $2E, $68,
    $FB, $97, $DA, $FC, $F7, $82, $AD, $9D, $D6, $47, $8C, $7C, $4E, $0C, $F7, $73, $2A, $CE, $57, $4A, $43, $00, $C9, $3D, $DC, $15, $32, $1C, $4E, $2D, $0B, $16, $18, $07, $6D, $69, $04, $CE, $32, $D5, $B2, $40, $41, $14, $13, $1D, $9A, $1B, $AD, $CA, $A8, $F8, $1A, $53, $3D, $91, $8C, $4F, $CD, $B1, $59, $DF, $03, $C4, $5F, $7B, $19, $2B, $8D, $B3, $00, $7F, $CE, $6A, $59, $59,
    $59, $94, $46, $D8, $95, $4A, $6D, $5A, $3D, $AA, $09, $F7, $2A, $29, $5B, $6A, $61, $15, $CB, $5E, $94, $8B, $0C, $E2, $7A, $51, $D0, $66, $0B, $D6, $D3, $F7, $90, $7D, $79, $69, $FD, $55, $C6, $6A, $1E, $15, $CE, $58, $9F, $97, $86, $A4, $4C, $B5, $2C, $34, $5D, $04, $D5, $61, $44, $DE, $5D, $CD, $9D, $56, $85, $80, $03, $71, $93, $6E, $F3, $CD, $6D, $D6, $74, $F7, $2C, $71,
    $E4, $DF, $46, $77, $2F, $8F, $02, $A6, $CA, $4C, $AD, $75, $9E, $B5, $78, $53, $B3, $43, $23, $0F, $9B, $54, $87, $6D, $B0, $DB, $AF, $8E, $8D, $8C, $EC, $99, $E2, $51, $E4, $71, $A3, $2B, $AB, $16, $2D, $0B, $BA, $E7, $13, $6F, $7D, $7A, $26, $5A, $16, $68, $50, $A7, $FE, $1C, $DB, $5B, $3B, $12, $B5, $42, $0E, $A8, $6B, $0E, $1D, $01, $1D, $71, $FA, $1E, $1F, $90, $A1, $3D,
    $DF, $FC, $4D, $96, $92, $D4, $4C, $7F, $35, $D7, $CE, $6A, $93, $39, $BB, $39, $0B, $4D, $8B, $E3, $A0, $35, $0A, $E5, $41, $DA, $FE, $A7, $3A, $6B, $C4, $78, $3A, $2E, $FA, $CD, $B6, $7B, $96, $88, $C6, $4E, $EF, $59, $61, $17, $3D, $30, $3D, $45, $99, $6A, $59, $98, $18, $46, $8A, $CF, $71, $27, $55, $45, $6B, $5F, $D3, $12, $5F, $91, $34, $D5, $72, $45, $83, $6A, $37, $62,
    $19, $91, $D5, $86, $86, $86, $D3, $EB, $46, $4A, $27, $41, $31, $84, $16, $C7, $3C, $20, $6A, $60, $6C, $9F, $3A, $2E, $BA, $59, $62, $B5, $56, $ED, $12, $11, $56, $4E, $0A, $AF, $A8, $DF, $E9, $6B, $8B, $C4, $FC, $9E, $1C, $99, $9A, $C6, $5F, $35, $3D, $92, $54, $C8, $54, $CB, $C2, $7A, $64, $89, $1B, $A9, $0B, $6E, $AA, $68, $D5, $DB, $C5, $90, $14, $A5, $86, $84, $7D, $5B,
    $22, $FA, $A3, $52, $B3, $63, $6A, $50, $F5, $84, $E8, $CB, $83, $ED, $33, $12, $FA, $08, $09, $6A, $36, $A2, $E6, $93, $E0, $DB, $6B, $55, $DB, $BE, $32, $D1, $C7, $9E, $33, $1B, $29, $79, $31, $F5, $5E, $59, $25, $9E, $AC, $D5, $77, $55, $86, $B2, $64, $AA, $65, $61, $A0, $5C, $3D, $08, $60, $A4, $4E, $67, $FF, $38, $68, $FD, $59, $B4, $FB, $19, $A8, $8B, $64, $1A, $A1, $4E,
    $BA, $71, $DA, $74, $70, $95, $AC, $52, $ED, $A4, $3B, $41, $C7, $78, $F3, $30, $DD, $FA, $CC, $60, $95, $B6, $7F, $97, $56, $87, $AC, $52, $29, $8A, $33, $C6, $70, $06, $1D, $7F, $53, $8B, $B0, $6F, $59, $59, $4E, $AA, $B1, $95, $E5, $F2, $25, $E4, $1D, $6C, $52, $5C, $25, $63, $2D, $0B, $5E, $6D, $16, $76, $82, $D1, $61, $5B, $70, $09, $D8, $C4, $1E, $A5, $75, $9A, $7D, $F6,
    $BD, $8D, $55, $AC, $01, $ED, $52, $C0, $EA, $72, $80, $46, $72, $AF, $25, $7F, $49, $8F, $A0, $66, $95, $7A, $9D, $D7, $E8, $20, $34, $34, $8E, $0D, $A4, $50, $74, $E1, $3C, $6E, $0C, $69, $33, $58, $A5, $ED, $5F, $17, $C0, $3D, $FD, $3F, $E3, $3D, $54, $08, $C9, $FC, $99, $BF, $84, $56, $6A, $FA, $22, $57, $01, $FE, $D6, $5D, $E7, $57, $AD, $AC, $86, $2F, $59, $54, $70, $1F,
    $E3, $0D, $4D, $70, $19, $D8, $67, $A2, $65, $31, $99, $F8, $72, $E7, $9E, $52, $C3, $39, $4F, $F5, $7B, $EF, $66, $3E, $5B, $4A, $68, $75, $4E, $13, $0C, $6E, $85, $B6, $F9, $95, $BF, $26, $21, $69, $06, $D8, $A2, $60, $6F, $E2, $C2, $0B, $1C, $E3, $EB, $A9, $59, $C5, $A9, $58, $82, $FB, $7F, $1E, $B8, $21, $66, $02, $75, $7C, $BB, $8B, $0A, $7A, $D6, $9A, $BD, $55, $2F, $AB,
    $18, $00, $B7, $0E, $2D, $27, $D7, $D7, $FE, $F4, $07, $7A, $01, $9D, $CC, $E7, $F9, $81, $6C, $ED, $9B, $3F, $2B, $46, $4E, $B0, $95, $B9, $7B, $D3, $6A, $24, $94, $68, $2A, $2D, $8B, $DF, $71, $8F, $71, $97, $54, $47, $03, $76, $AB, $5A, $6C, $86, $5A, $16, $B5, $86, $AF, $EA, $32, $BB, $DA, $5B, $EC, $0F, $2F, $52, $CD, $24, $2E, $41, $C2, $EE, $AF, $B7, $08, $57, $0D, $5C,
    $7E, $AA, $E1, $CA, $FE, $59, $D2, $3B, $75, $61, $35, $78, $D1, $31, $BF, $BA, $59, $FC, $7D, $B6, $85, $B3, $5A, $A1, $64, $D5, $84, $98, $F6, $2B, $DD, $4A, $67, $89, $6F, $FE, $54, $64, $9A, $54, $EB, $2C, $AC, $73, $7E, $15, $87, $7F, $60, $58, $6C, $EA, $BD, $2A, $4D, $40, $A6, $5A, $16, $9C, $D5, $87, $8B, $73, $B5, $AE, $C2, $C3, $E7, $34, $17, $56, $35, $7D, $7E, $8B,
    $98, $A1, $E2, $8E, $59, $80, $13, $BD, $23, $70, $C7, $13, $AB, $B7, $07, $3B, $DC, $64, $CD, $3B, $AB, $28, $B5, $7D, $D5, $3C, $62, $37, $BA, $BF, $2E, $CA, $66, $19, $69, $59, $14, $47, $A3, $D1, $CA, $FE, $5D, $A7, $D4, $1B, $86, $BB, $29, $90, $69, $FA, $07, $A8, $EE, $BA, $A8, $D2, $EC, $8A, $C7, $FE, $1E, $3F, $B6, $AC, $98, $1E, $43, $6F, $2B, $D7, $2A, $5C, $41, $CB,
    $F4, $99, $B0, $62, $77, $3C, $7E, $62, $FB, $EC, $D2, $14, $17, $AD, $94, $0F, $43, $43, $AC, $D0, $B2, $98, $75, $6A, $B3, $34, $4F, $AB, $CF, $39, $B9, $E3, $3F, $F0, $59, $DB, $E3, $57, $9A, $90, $E6, $23, $BB, $98, $9C, $71, $D2, $08, $1F, $E9, $B1, $35, $7D, $A2, $01, $1F, $19, $E3, $2E, $3C, $F7, $49, $C8, $3A, $74, $5D, $F7, $49, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C,
    $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $F1, $3F, $8D, $CA, $F8, $D1, $2D, $D5, $41, $9F, $87, $EC, $A2, $EF, $CE, $16, $80, $67, $3D, $7D, $22, $B2, $0C, $FD, $B3, $84, $11, $1C, $EF, $8E, $31, $B5, $B5, $B5, $D9, $FC, $12, $3C, $99, $9C, $2F, $B3, $23, $42, $2B, $EB, $EA, $EA, $16, $67, $76, $4C, $21, $B9, $4A, $96,
    $12, $86, $14, $60, $30, $95, $14, $42, $30, $5F, $52, $05, $D2, $45, $4A, $2C, $79, $41, $F5, $14, $33, $A8, $C6, $15, $75, $AA, $D0, $52, $0F, $B0, $EA, $49, $98, $88, $BB, $A5, $BE, $75, $47, $EE, $05, $C8, $74, $91, $4F, $85, $75, $59, $A8, $5E, $50, $54, $D0, $C5, $AA, $51, $F0, $C4, $1A, $6E, $84, $B1, $7C, $C9, $21, $E2, $85, $3B, $33, $8C, $D3, $9D, $53, $5E, $09, $AB,
    $0E, $3D, $89, $6E, $B1, $CA, $82, $BE, $F6, $74, $99, $D5, $01, $FB, $31, $48, $A9, $F3, $70, $FF, $2E, $92, $FA, $42, $5A, $60, $B4, $08, $E0, $74, $33, $24, $4A, $53, $B0, $AA, $35, $72, $5D, $81, $EC, $B2, $1A, $DC, $E7, $54, $3E, $E8, $1E, $AB, $5A, $E5, $CB, $CC, $68, $95, $58, $95, $D4, $2D, $BE, $EE, $12, $A9, $E7, $A4, $55, $A3, $33, $30, $96, $A1, $77, $33, $B4, $F0,
    $E5, $93, $15, $04, $27, $ED, $AC, $36, $A4, $17, $08, $C9, $9C, $D5, $C0, $3F, $90, $75, $56, $B5, $3C, $BE, $62, $34, $73, $56, $2F, $48, $0B, $77, $07, $66, $7A, $D9, $61, $D1, $E8, $BB, $F2, $A3, $45, $A3, $98, $0A, $A6, $47, $34, $3A, $CC, $CA, $D0, $AB, $67, $35, $B5, $9E, $44, $17, $59, $CD, $10, $12, $AB, $C5, $09, $38, $3F, $3C, $1C, $AE, $7C, $A2, $0C, $71, $CB, $02,
    $BA, $C5, $6A, $44, $E4, $D8, $F3, $F0, $40, $C6, $D2, $FA, $90, $8A, $D5, $84, $A6, $0D, $5F, $1F, $DB, $36, $C1, $D9, $7F, $04, $E8, $25, $02, $9F, $FE, $16, $5B, $51, $26, $EF, $77, $51, $A3, $E8, $FF, $F5, $86, $BA, $15, $93, $FA, $94, $4D, $ED, $2B, $ED, $EC, $F7, $D5, $FA, $BA, $E5, $BF, $48, $76, $75, $12, $8B, $DC, $1C, $68, $08, $2B, $0C, $8F, $46, $59, $3C, $61, $2F,
    $72, $39, $57, $97, $DD, $28, $95, $CB, $13, $09, $BA, $DD, $88, $83, $D5, $B3, $66, $18, $7B, $CF, $99, $93, $82, $A9, $58, $0D, $DD, $F3, $A6, $BA, $40, $15, $4C, $7E, $75, $FF, $99, $B0, $DA, $14, $3A, $41, $DB, $E3, $5D, $47, $93, $C6, $30, $B4, $61, $03, $9F, $D3, $5F, $A5, $B4, $CE, $6A, $35, $8A, $E1, $77, $15, $51, $20, $23, $EE, $B9, $86, $86, $80, $A8, $1F, $46, $BA,
    $EA, $1A, $2B, $1F, $6C, $FD, $BE, $58, $51, $E8, $48, $6A, $ED, $76, $23, $0E, $56, $F7, $18, $91, $01, $83, $3A, $59, $50, $93, $2B, $AB, $D8, $72, $F7, $79, $F1, $2E, $F1, $A2, $3D, $52, $B2, $FA, $A8, $5E, $84, $6F, $04, $15, $AC, $6E, $68, $E3, $BF, $1A, $21, $D7, $6A, $35, $8A, $6F, $40, $11, $5B, $33, $17, $20, $25, $AB, $81, $14, $AC, $CE, $85, $18, $0E, $8A, $D6, $35,
    $55, $B9, $B1, $AA, $BE, $11, $07, $AB, $53, $0C, $03, $8E, $D1, $54, $30, $C3, $9D, $55, $8C, $AF, $39, $E3, $C5, $E5, $1B, $EA, $1A, $69, $6D, $DA, $55, $80, $0B, $53, $17, $B5, $9A, $FA, $1C, $16, $56, $49, $45, $D8, $F0, $01, $E6, $47, $3D, $63, $B0, $AA, $52, $A3, $18, $4A, $05, $1A, $2A, $FA, $57, $EE, $92, $08, $AC, $50, $ED, $14, $FD, $9D, $08, $FA, $73, $61, $B5, $B0,
    $93, $3A, $09, $E5, $22, $2A, $4B, $C5, $AA, $52, $16, $C3, $C1, $AA, $7E, $1D, $DA, $26, $D3, $0A, $F3, $08, $14, $0F, $69, $B2, $8A, $C9, $25, $6F, $78, $9A, $35, $F8, $52, $A9, $27, $61, $63, $75, $A5, $C6, $54, $B8, $9E, $AB, $58, $4D, $0C, $E2, $6D, $CD, $78, $89, $2A, $35, $8A, $3B, $64, $7B, $96, $DD, $35, $55, $EE, $E4, $98, $67, $78, $F3, $6A, $56, $2F, $52, $BD, $80,
    $60, $13, $40, $9D, $AB, $05, $50, $CA, $62, $38, $58, $D5, $F2, $3A, $79, $D0, $15, $FA, $D9, $CA, $00, $49, $CA, $EA, $A0, $24, $79, $CF, $DE, $82, $7D, $96, $A6, $D4, $93, $60, $AC, $EE, $34, $5C, $9E, $22, $05, $AB, $1F, $88, $21, $8C, $23, $7C, $57, $52, $A3, $E8, $87, $FA, $53, $F6, $87, $EE, $AF, $DA, $29, $3C, $CF, $0E, $32, $10, $C8, $75, $67, $75, $1A, $D3, $05, $D8,
    $0D, $70, $47, $77, $65, $55, $71, $23, $2A, $56, $7F, $03, $F8, $A5, $02, $CF, $A2, $AF, $6F, $6F, $AA, $72, $EB, $AD, $DE, $22, $23, $A5, $96, $42, $6F, $7E, $46, $6D, $1A, $95, $BC, $B8, $51, $09, $97, $90, $AD, $77, $9D, $AC, $32, $79, $AD, $AA, $58, $2C, $66, $71, $38, $6C, $6A, $14, $B3, $8D, $7C, $B7, $D2, $43, $D7, $A8, $76, $72, $EF, $E2, $BA, $A8, $C6, $6A, $56, $F3,
    $3B, $68, $04, $F0, $18, $62, $7F, $8A, $B5, $94, $AC, $3A, $64, $31, $1C, $AC, $96, $A7, $4F, $C5, $8B, $C7, $3C, $CB, $C0, $81, $46, $56, $D7, $A4, $61, $95, $6D, $7D, $EE, $94, $C6, $88, $B8, $24, $C0, $76, $AA, $51, $6C, $35, $84, $41, $A4, $87, $DE, $A6, $DA, $C9, $4C, $1D, $06, $B8, $EE, $D7, $DC, $59, $25, $B7, $75, $56, $D3, $72, $C8, $10, $6E, $AE, $96, $82, $55, $95,
    $2C, $86, $83, $D5, $8D, $F0, $C8, $8B, $BF, $7A, $D7, $45, $EC, $49, $85, $59, $46, $E4, $78, $3A, $56, $15, $D2, $18, $2E, $AC, $2A, $D4, $28, $62, $C6, $A3, $48, $0F, $AD, $DC, $49, $B1, $4F, $EE, $6C, $55, $AC, $FE, $45, $AD, $2A, $B2, $3A, $2F, $05, $AB, $2A, $59, $0C, $27, $AB, $C7, $1C, $62, $18, $4A, $56, $FB, $B6, $80, $E7, $18, $A6, $CA, $34, $0A, $59, $26, $AB, $33,
    $9D, $41, $FA, $6A, $56, $55, $6A, $14, $7B, $55, $04, $EE, $75, $63, $75, $0F, $92, $1A, $D0, $52, $B0, $5A, $90, $A0, $16, $60, $3C, $B1, $00, $25, $AE, $AC, $2A, $65, $31, $9C, $AC, $5E, $49, $D9, $B1, $98, $BD, $D5, $08, $14, $BE, $29, $F0, $C4, $2A, $ED, $70, $86, $78, $61, $75, $A7, $B3, $7F, $54, $B2, $AA, $54, $A3, $D8, $60, $64, $67, $AF, $34, $09, $54, $EE, $E4, $A4,
    $4A, $02, $0F, $84, $AF, $27, $74, $E3, $27, $89, $8F, $39, $AC, $B7, $3A, $40, $7A, $AB, $80, $B5, $94, $71, $2E, $E5, $8D, $74, $67, $C4, $BA, $1A, $55, $CD, $BC, $09, $54, $62, $34, $F4, $3F, $81, $F4, $AC, $06, $DB, $C9, $8B, $0F, $78, $60, $55, $A5, $46, $41, $5D, $3D, $3A, $05, $15, $B8, $65, $12, $A8, $DC, $C9, $48, $3D, $A0, $5B, $EF, $10, $FF, $ED, $93, $30, $74, $02,
    $09, $FE, $A1, $36, $20, $DC, $2C, $3C, $AB, $B3, $BC, $94, $79, $2E, $E5, $8D, $A4, $66, $B5, $72, $E7, $A6, $42, $77, $56, $F5, $CB, $E4, $9F, $43, $9E, $58, $A5, $41, $E1, $E7, $E9, $A7, $1B, $7D, $C4, $D7, $EE, $AC, $6E, $37, $A4, $47, $D2, $B0, $AA, $52, $A3, $D0, $50, $80, $A8, $91, $30, $15, $38, $23, $0D, $A3, $94, $3B, $59, $4D, $0D, $48, $C2, $15, $0D, $4C, $A4, $B2,
    $A0, $C9, $62, $1E, $4B, $98, $50, $F3, $68, $B1, $6F, $2F, $2B, $25, $9D, $4B, $79, $23, $0A, $56, $9B, $0C, $56, $3F, $45, $79, $AC, $7C, $F7, $B1, $55, $7E, $AB, $CB, $28, $C1, $89, $53, $D4, $98, $D7, $6F, $DB, $72, $26, $E1, $32, $13, $58, $D5, $AF, $A8, $02, $A7, $02, $DA, $F2, $BC, $B0, $AA, $50, $A3, $20, $B8, $81, $BE, $69, $D5, $67, $B7, $2C, $83, $53, $D5, $CE, $3D,
    $0E, $09, $5B, $DA, $9A, $AA, $66, $31, $21, $81, $7A, $C3, $B4, $AF, $86, $ED, $38, $D2, $DE, $FB, $80, $ED, $41, $45, $A4, $DB, $55, $9F, $DF, $33, $CF, $E5, $BC, $91, $11, $28, $6A, $71, $05, $87, $D9, $E4, $5F, $A1, $C0, $17, $06, $58, $C0, $37, $E9, $8D, $CC, $4F, $31, $0F, $80, $EF, $10, $DE, $F7, $34, $69, $7D, $39, $DD, $FC, $AA, $90, $11, $1B, $A6, $79, $61, $55, $A1,
    $46, $81, $13, $17, $62, $E7, $19, $89, $55, $63, $E7, $CE, $46, $63, $27, $28, $59, $65, $12, $9D, $9D, $20, $69, $2A, $05, $D8, $EC, $85, $30, $4A, $39, $ED, $8E, $73, $39, $6E, $A4, $0E, $1C, $E2, $6B, $9A, $36, $D1, $14, $A9, $C4, $B1, $9E, $F2, $C3, $80, $31, $13, $88, $A7, $6C, $F7, $24, $2E, $AE, $2F, $E9, $10, $57, $5A, $95, $82, $D5, $FA, $62, $CD, $1B, $AB, $4E, $35,
    $0A, $DA, $BA, $58, $A6, $F6, $CD, $7D, $64, $13, $CA, $77, $D6, $21, $73, $69, $59, $DD, $AC, $6D, $91, $59, $B5, $63, $54, $92, $2B, $54, $1B, $E7, $72, $DC, $88, $8A, $D5, $B7, $5A, $A0, $51, $33, $07, $6C, $90, $50, $7D, $C7, $2E, $8D, $46, $A3, $D4, $1A, $51, $DD, $86, $72, $8F, $DF, $58, $2A, $7F, $DC, $15, $DB, $B5, $EC, $FD, $1C, $75, $6F, $F5, $FD, $8E, $D8, $6F, $B3,
    $55, $52, $57, $38, $BF, $AA, $1A, $36, $DB, $D5, $28, $28, $7A, $FC, $74, $E2, $D4, $9A, $52, $AA, $4D, $15, $B5, $EF, $D4, $CA, $8D, $39, $51, $8B, $6E, $C5, $70, $CE, $EA, $99, $C5, $F1, $3D, $84, $16, $7D, $E6, $9E, $5D, $EE, $9F, $5D, $0A, $6A, $8F, $9D, $5A, $57, $26, $9F, $CB, $7E, $23, $A5, $F2, $B9, $91, $1B, $BD, $82, $38, $11, $09, $F3, $03, $D9, $84, $63, $7B, $FB,
    $6A, $AF, $01, $59, $FF, $16, $30, $C8, $A3, $CA, $8E, $C5, $07, $38, $F7, $8A, $9E, $8E, $8C, $6C, $5E, $FC, $56, $A8, $BD, $76, $64, $9D, $D5, $8A, $AE, $B0, $7A, $EF, $15, $3D, $5D, $A8, $F0, $DF, $D1, $26, $79, $33, $58, $6D, $D2, $FE, $6F, $C1, $67, $D5, $67, $F5, $BF, $82, $CC, $D7, $59, $A5, $41, $E6, $4B, $AA, $66, $D5, $D6, $7E, $A7, $F9, $F0, $E1, $C3, $87, $0F, $1F,
    $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $50, $2C, $AE, $AB, $AB, $5B, $FE, $9F, $16, $52, $88, $CB, $B0, $45, $CC, $05, $46, $E9, $9A, $D6, $EF, $B5, $DF, $12, $2E, $D3, $3A, $1E, $FE, $4F, $D7, $0B, $79, $81, $CD, $6C, $DB, $6F, $4B, $E0, $B0, $F6, $31, $2E, $33, $7F, $DD, $A4, $26, $67, $FE, $C7, $5B, $9B, $44, $EA,
    $32, $DB, $4F, $79, $09, $78, $5F, $7F, $94, $36, $8C, $21, $CB, $98, $1D, $8F, $1F, $2B, $7E, $53, $D8, $A9, $4A, $F3, $D9, $53, $D6, $83, $50, $B3, $BA, $CB, $FE, $D3, $76, $B8, $A8, $7D, $01, $0F, $D2, $9C, $66, $C0, $F1, $A6, $86, $D9, $B8, $82, $B5, $E8, $15, $3C, $55, $E6, $9F, $87, $F1, $FB, $6F, $F6, $BE, $28, $6F, $4E, $B9, $88, $DD, $AA, $07, $A1, $64, $F5, $BA, $3D,
    $0C, $B1, $18, $A0, $5F, $E0, $B9, $F5, $C3, $BF, $F3, $34, $E5, $74, $19, $5F, $63, $65, $DF, $13, $CD, $52, $FE, $23, $3D, $BF, $A8, $28, $2F, $0B, $4F, $E5, $71, $29, $43, $B0, $B0, $50, $74, $6E, $15, $90, $AD, $D5, $0F, $78, $CA, $05, $00, $A4, $AE, $F6, $71, $59, $C7, $6E, $D5, $83, $50, $B1, $DA, $E9, $58, $00, $76, $9A, $D4, $DE, $1A, $B8, $9E, $E6, $34, $97, $20, $71,
    $E6, $A5, $99, $D4, $8B, $3E, $E3, $32, $26, $57, $D0, $B1, $27, $C3, $C5, $79, $CE, $8C, $60, $9E, $58, $2D, $A5, $39, $D6, $CE, $B2, $C8, $41, $8C, $7F, $7C, $9A, $15, $56, $AF, $3E, $1A, $80, $A1, $54, $79, $DA, $AC, $A4, $5A, $28, $C3, $AE, $07, $A1, $60, $D5, $91, $70, $70, $04, $74, $E6, $05, $5B, $2D, $29, $E1, $55, $A7, $C9, $BB, $D5, $5B, $0B, $FE, $06, $72, $4A, $F4,
    $22, $93, $9A, $6F, $5E, $03, $AB, $63, $92, $3C, $28, $9B, $9A, $A6, $52, $4C, $4A, $97, $15, $93, $8A, $AB, $BC, $C7, $01, $F4, $3A, $45, $EA, $87, $AA, $DD, $29, $F5, $20, $AC, $AC, $3E, $74, $84, $21, $DF, $81, $A5, $DA, $52, $B6, $28, $3F, $FD, $69, $7A, $4E, $FC, $D4, $5C, $1C, $8B, $AC, $B6, $34, $B1, $D5, $EA, $03, $5E, $39, $AB, $39, $1D, $00, $C7, $C6, $4F, $BA, $0E,
    $D0, $A4, $F3, $8B, $37, $64, $83, $D5, $62, $94, $39, $21, $AD, $B0, $19, $A0, $6D, $49, $A6, $CB, $0E, $F9, $33, $38, $52, $6D, $7E, $0E, $CF, $03, $E1, $8E, $CC, $58, $E1, $88, $7C, $3B, $00, $AD, $5C, $8F, $B3, $8A, $E0, $8E, $B4, $AC, $D6, $17, $71, $78, $B5, $AB, $B3, $01, $4E, $A0, $D9, $69, $66, $41, $4F, $3D, $EC, $29, $CA, $BB, $8E, $82, $0D, $74, $19, $79, $D3, $57,
    $4A, $B3, $AA, $94, $88, $B0, $B2, $DA, $66, $AF, $AA, $81, $17, $F0, $29, $E9, $9B, $64, $7D, $0F, $23, $63, $9F, $3C, $EA, $29, $A7, $DA, $2C, $C3, $D6, $C7, $7E, $FD, $C8, $51, $DB, $0B, $C8, $89, $AF, $B8, $DE, $B3, $E2, $AE, $9C, $B9, $56, $E3, $34, $C7, $FC, $70, $E9, $F4, $11, $7B, $DE, $C0, $3F, $78, $1E, $DE, $9D, $AC, $6A, $44, $DC, $12, $3F, $77, $01, $E5, $34, $7D,
    $E6, $0E, $B5, $F4, $42, $AA, $50, $66, $CE, $AA, $43, $09, $63, $29, $DC, $D4, $22, $49, $91, $8E, $DD, $DA, $3E, $8B, $AC, $8F, $5D, $13, $3E, $4F, $77, $DF, $B0, $0F, $87, $50, $31, $C1, $48, $AB, $CC, $2D, $D3, $88, $54, $77, $A5, $64, $F5, $81, $F5, $F4, $51, $BB, $95, $88, $F3, $C0, $85, $3A, $16, $20, $1C, $76, $4D, $A0, $9E, $29, $A2, $D7, $C5, $65, $0E, $F4, $EB, $1A,
    $AB, $A3, $ED, $03, $80, $4E, $18, $AA, $6D, $B3, $26, $8B, $75, $63, $F5, $97, $1B, $7C, $FF, $11, $DB, $49, $7A, $98, $89, $51, $23, $75, $49, $D4, $52, $AB, $7A, $00, $95, $99, $B2, $FA, $F0, $9A, $E5, $F4, $0E, $56, $F7, $F2, $74, $C8, $17, $58, $1C, $4B, $08, $B2, $94, $C3, $70, $19, $B6, $34, $E2, $F4, $4C, $7C, $09, $4A, $65, $37, $0F, $AC, $DA, $DD, $AA, $1D, $70, $5C,
    $2B, $84, $A4, $25, $E2, $53, $17, $91, $4E, $36, $56, $A9, $4E, $46, $2D, $76, $C4, $D6, $E0, $B1, $C0, $31, $D2, $2F, $73, $6F, $61, $39, $69, $C9, $E4, $D7, $C3, $00, $4F, $02, $19, $B2, $6A, $3B, $7D, $39, $9F, $B2, $C0, $A8, $B6, $7B, $3A, $73, $4C, $1E, $E6, $6A, $DA, $7B, $E4, $0A, $41, $DE, $40, $EA, $B2, $C1, $6A, $B0, $05, $56, $E8, $C4, $11, $C8, $C9, $3B, $0B, $7F,
    $74, $AD, $AE, $DA, $FA, $B8, $08, $A6, $76, $AF, $83, $ED, $CE, $73, $D5, $A9, $58, $45, $9D, $8C, $EF, $E4, $1A, $9F, $57, $53, $33, $77, $1B, $79, $C7, $89, $B1, $E2, $8D, $34, $D0, $18, $3F, $0C, $B0, $DE, $94, $9A, $D5, $27, $75, $0C, $73, $52, $9C, $1E, $DD, $52, $42, $73, $82, $DE, $48, $98, $F0, $9B, $38, $DB, $60, $38, $87, $64, $63, $6D, $56, $2C, $C0, $B8, $C1, $34,
    $38, $99, $54, $B8, $79, $F9, $59, $61, $55, $6F, $22, $2E, $FD, $77, $B6, $C1, $AA, $2B, $AB, $94, $FC, $81, $72, $90, $7C, $19, $3B, $6B, $F3, $3B, $E6, $40, $C5, $08, $B0, $86, $FE, $29, $59, $B5, $86, $52, $A9, $4F, $4F, $5E, $CF, $33, $33, $7A, $7C, $18, $8F, $7D, $5B, $67, $3C, $50, $AD, $EB, $50, $D6, $40, $99, $37, $66, $D7, $00, $BC, $ED, $F2, $93, $07, $56, $ED, $19,
    $8C, $27, $C0, $13, $3D, $D0, $62, $D7, $12, $70, $61, $55, $17, $44, $DA, $59, $05, $38, $65, $BC, $E5, $A9, $2C, $C0, $9A, $D8, $80, $5B, $7A, $66, $AC, $3A, $4F, $AF, $69, $E7, $45, $1A, $77, $EA, $44, $CC, $3F, $D5, $70, $61, $AD, $F0, $97, $5F, $00, $7C, $AB, $62, $C1, $9A, $14, $BA, $DA, $1B, $AB, $2B, $1B, $1A, $86, $76, $9D, $D5, $71, $F6, $63, $1E, $C0, $74, $62, $B1,
    $9E, $E9, $5E, $58, $D5, $1C, $8F, $1D, $AC, $A8, $88, $4E, $DE, $8A, $A6, $EF, $85, $11, $02, $77, $02, $E0, $12, $69, $AF, $2F, $45, $94, $A9, $0B, $AB, $77, $AB, $19, $2A, $53, $9C, $5E, $5B, $87, $3D, $89, $8B, $7C, $52, $13, $C0, $9C, $AC, $B1, $9A, $02, $1E, $58, $DD, $EB, $30, $2A, $D0, $12, $20, $76, $60, $4E, $D7, $58, $E5, $DC, $A2, $7A, $D9, $2F, $C2, $A8, $DC, $A4,
    $B3, $62, $45, $49, $F1, $0A, $3D, $F7, $56, $CE, $D3, $63, $5A, $ED, $16, $E1, $78, $17, $9B, $EE, $6B, $90, $9F, $57, $49, $99, $94, $6A, $FB, $D6, $6B, $62, $D5, $99, $A5, $FA, $0E, $CC, $25, $76, $A0, $25, $D8, $0D, $56, $B5, $7C, $B4, $AD, $E6, $6C, $57, $53, $90, $A6, $A5, $3F, $AE, $75, $93, $D5, $42, $34, $A4, $C3, $45, $91, $5A, $B3, $02, $D2, $1B, $AB, $07, $F8, $24,
    $FD, $4C, $58, $56, $58, $B5, $49, $44, $38, $47, $AC, $0B, $1C, $73, $16, $D0, $16, $A4, $73, $01, $DD, $60, $55, $37, $67, $E5, $50, $61, $8C, $F4, $A9, $F3, $01, $DA, $F3, $5C, $EF, $CA, $1B, $AB, $18, $27, $2C, $DD, $97, $9D, $D5, $40, $28, $A4, $BF, $0E, $56, $9D, $12, $11, $4E, $56, $DB, $1C, $DF, $89, $AE, $C3, $12, $ED, $7D, $E8, $C8, $E9, $06, $AB, $BD, $C9, $BE, $FB,
    $8C, $AF, $A7, $D4, $DF, $C1, $F6, $3F, $C5, $FD, $AE, $BC, $B1, $7A, $00, $7B, $41, $C9, $CE, $44, $0C, $64, $30, $6B, $DB, $7D, $56, $9D, $12, $11, $8A, $99, $C0, $9D, $F6, $A3, $2A, $A1, $23, $AC, $5D, $85, $0D, $5D, $67, $35, $7C, $81, $3B, $9B, $54, $B5, $09, $BB, $FE, $6B, $D2, $CC, $87, $E2, $AE, $3C, $B1, $3A, $07, $65, $F2, $52, $CC, $21, $2D, $6A, $BD, $37, $28, $0D,
    $21, $6B, $E3, $F1, $CA, $6E, $B3, $EA, $94, $88, $50, $7D, $0B, $78, $D7, $7E, $58, $3D, $61, $64, $08, $24, $0D, $DF, $48, $A9, $22, $A1, $62, $F5, $C7, $E5, $5F, $7E, $18, $8D, $7E, $4E, $7D, $00, $AE, $9D, $A1, $CF, $6C, $46, $CF, $A7, $EC, $54, $67, $CF, $14, $77, $85, $AC, $B6, $88, $EF, $BD, $39, $EA, $D3, $A3, $E3, $0A, $ED, $4D, $0C, $8A, $59, $F1, $51, $78, $D1, $80,
    $F6, $EA, $A1, $90, $88, $50, $B0, $EA, $10, $24, $AA, $40, $39, $BA, $33, $A6, $02, $A1, $52, $45, $42, $C5, $AA, $A4, $9D, $D1, $56, $6E, $D8, $58, $3E, $6A, $4B, $75, $57, $29, $E6, $57, $8D, $D3, $D7, $CA, $65, $14, $BE, $7C, $8D, $CA, $FD, $7E, $25, $70, $4A, $44, $28, $58, $85, $9B, $F6, $FE, $FE, $3C, $6C, $C6, $A9, $F5, $A2, $2E, $B3, $9A, $DC, $9D, $9F, $D1, $5D, $65,
    $83, $55, $FC, $C2, $F2, $E8, $F5, $64, $88, $57, $48, $44, $38, $59, $75, $C8, $92, $0E, $82, $64, $8E, $F6, $A7, $A1, $4A, $E7, $50, $91, $E0, $F3, $AB, $8C, $91, $B0, $A9, $82, $3D, $BA, $F6, $D7, $58, $2C, $B6, $65, $DE, $C8, $50, $86, $77, $A5, $DB, $E7, $4E, $15, $A7, $2F, $96, $CB, $A8, $96, $62, $8C, $3E, $BA, $A3, $40, $FB, $B7, $21, $BF, $7A, $FB, $54, $DE, $DE, $CD,
    $01, $AD, $57, $FD, $38, $CD, $47, $A6, $A8, $90, $E1, $D3, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $3E, $7C, $F8, $F0, $E1, $C3, $87, $0F, $1F, $88, $E0, $AA, $BA, $BA, $19, $9E, $4B, $0F, $C4, $95, $F9, $23, $5C, $7E, $FC, $EF, $2B, $4D, $64, $0B, $61, $9A, $E5, $76, $BD, $E7, $F2, $43, $9F, $03, $24,
    $D5, $2B, $BC, $FE, $0F, $28, $4D, $64, $09, $79, $37, $01, $56, $5F, $06, $55, $50, $8A, $DB, $6B, $38, $E1, $42, $EB, $FF, $05, $A5, $89, $CC, $A0, $F7, $52, $AF, $C1, $09, $EE, $8C, $9F, $AA, $D0, $F4, $DA, $78, $7C, $9E, $F7, $93, $CD, $8C, $C7, $4F, $39, $43, $B4, $ED, $4A, $13, $85, $E5, $7D, $F3, $B2, $FD, $14, $DD, $3C, $3E, $90, $DD, $15, $81, $91, $46, $48, $8C, $79,
    $CD, $2F, $12, $17, $93, $3D, $9C, $92, $BD, $F3, $0D, $39, $D2, $01, $9D, $71, $63, $79, $7A, $71, $6D, $6D, $2D, $B1, $EF, $16, $7D, $8A, $E0, $EC, $D3, $8F, $1A, $8F, $7D, $E6, $46, $FE, $2E, $39, $21, $76, $16, $B0, $5D, $15, $E6, $FB, $1A, $58, $55, $27, $74, $ED, $12, $D6, $03, $9C, $9A, $71, $C1, $CC, $0E, $FF, $0E, $39, $F9, $77, $9A, $D6, $2C, $85, $5E, $F7, $65, $F9,
    $E3, $E1, $B6, $7A, $69, $75, $1F, $23, $63, $79, $96, $40, $93, $D9, $07, $DD, $9E, $DC, $65, $71, $A2, $F2, $47, $EF, $3B, $07, $2F, $FC, $BD, $DD, $1E, $07, $1B, $B2, $AF, $97, $F4, $8C, $AF, $D9, $82, $FF, $DD, $3C, $8C, $9A, $AD, $01, $FE, $92, $A6, $AD, $13, $A9, $51, $C3, $2F, $00, $3A, $CE, $60, $E7, $7B, $55, $79, $8A, $52, $17, $12, $BA, $8C, $2A, $C5, $B2, $BE, $57,
    $CD, $2A, $76, $85, $8F, $45, $4E, $E7, $EE, $B2, $1A, $EE, $80, $7F, $E8, $BF, $9D, $22, $B7, $1A, $D6, $BC, $F1, $34, $86, $E0, $26, $2F, $33, $9F, $6C, $12, $0F, $E4, $AD, $4E, $91, $B1, $D4, $86, $9E, $90, $ED, $AC, $33, $EF, $6F, $9E, $A3, $BF, $7E, $56, $69, $D8, $5F, $56, $58, $9D, $26, $62, $B1, $7E, $C7, $38, $5A, $04, $C6, $16, $8D, $A4, $01, $16, $67, $78, $99, $4B,
    $3C, $D7, $F9, $5E, $17, $F9, $11, $BC, $78, $E3, $6B, $71, $0D, $42, $A1, $FF, $DF, $DE, $BD, $87, $D8, $55, $DF, $09, $00, $3F, $E7, $66, $26, $AF, $99, $64, $F2, $30, $26, $3E, $92, $B8, $5A, $63, $D5, $68, $2E, $D9, $5D, $EB, $2B, $5A, $BB, $56, $BB, $B5, $CB, $8E, $52, $17, $E9, $4A, $D6, $25, $51, $D6, $C2, $58, $D6, $E0, $CA, $8A, $29, $36, $AB, $28, $29, $84, $94, $4A,
    $86, $62, $41, $2C, $52, $D9, $10, $5A, $CA, $96, $52, $34, $CB, $A6, $A1, $58, $4B, $59, $2C, $6B, $2A, $D9, $2D, $25, $14, $B1, $6E, $C4, $15, $09, $21, $C4, $E9, $F0, $63, $CF, $EF, $9C, $7B, $67, $E6, $3E, $E7, $DE, $F1, $26, $13, $E3, $E7, $F3, $47, $6E, $CE, $FB, $77, $BE, $E7, $77, $9E, $73, $7E, $DF, $D3, $97, $7F, $82, $33, $FB, $ED, $EB, $68, $60, $E7, $3D, $A3, $F3,
    $EB, $F7, $B9, $4A, $93, $92, $17, $DA, $47, $B5, $F4, $48, $FD, $55, $EF, $77, $42, $28, $9A, $CC, $FC, $69, $B5, $A9, $4B, $5F, $F1, $59, $DE, $C7, $26, $BF, $98, $7D, $A4, $B2, $45, $B7, $B4, $FA, $62, $7A, $A8, $DB, $73, $AA, $DA, $E5, $87, $68, $6A, $79, $E3, $3B, $D0, $CD, $36, $61, $CB, $14, $0F, $4D, $07, $76, $DE, $73, $55, $63, $F3, $E2, $DC, $AE, $BA, $A8, $0E, $5C,
    $F3, $B7, $5B, $B6, $DC, $71, $65, $E5, $AD, $F6, $F4, $BB, $E1, $B7, $75, $29, $B0, $DE, $0C, $C7, $2B, $2B, $54, $6D, $37, $1D, $5B, $6C, $2D, $4B, $92, $AD, $93, $AD, $56, $7F, $55, $69, $17, $F2, $74, $6D, $AA, $B8, $A5, $8F, $7D, $7D, $45, $75, $26, $E1, $EB, $CD, $56, $B2, $5D, $7E, $88, $36, $27, $E2, $9A, $F7, $F5, $CF, $BC, $A8, $0E, $55, $9B, $0B, $54, $3E, $74, $F5,
    $40, $BC, $62, $59, $57, $57, $CD, $2A, $C3, $16, $4E, $B4, $01, $1D, $CF, $D3, $02, $FC, $75, $08, $7F, $5F, $19, $67, $5B, $08, $3F, $CD, $4E, $F1, $CB, $C7, $6A, $8F, $ED, $B1, $39, $FB, $E2, $EA, $39, $FB, $2B, $2D, $A2, $DA, $32, $3F, $C4, $99, $18, $D5, $73, $B3, $9E, $FD, $D3, $45, $F5, $AA, $93, $A1, $36, $AA, $E9, $53, $A1, $F8, $74, $70, $93, $A8, $2E, $98, $68, $A7,
    $36, $3F, $6F, $9B, $56, $5A, $B0, $A0, $7A, $88, $19, $CA, $E2, $FC, $F6, $B7, $5F, $C8, $FE, $DD, $3B, $65, $CA, $F8, $C5, $E0, $E2, $CB, $D0, $31, $5D, $DA, $8D, $2D, $A2, $DA, $2A, $3F, $44, $73, $6B, $87, $73, $F7, $CC, $52, $54, $87, $B2, $9E, $03, $D3, $44, $75, $65, $5C, $97, $93, $CF, $6E, $FD, $EA, $F3, $C7, $27, $3E, $CA, $F6, $E5, $30, $B5, $3D, $7A, $5D, $54, $5B,
    $16, $F6, $86, $4A, $FA, $AA, $83, $53, $5B, $2D, $E6, $0D, $AA, $8B, $AB, $B1, $E1, $10, $3E, $D5, $32, $AA, $CD, $12, $38, $4C, $77, $56, $9A, $A5, $A8, $C6, $9E, $D7, $4C, $13, $D5, $98, $19, $66, $6F, $1E, $87, $74, $32, $21, $DE, $95, $F1, $D3, $BC, $DF, $9F, $D3, $5D, $54, $93, $A1, $6D, $87, $C2, $B1, $7D, $9B, $6A, $4F, $39, $8F, $84, $6A, $C3, $B0, $72, $A8, $C9, $C1,
    $53, $13, $D5, $66, $09, $1C, $CE, $D4, $A8, $26, $FB, $42, $78, $EB, $C2, $B6, $51, $8D, $75, $E9, $48, $E3, $1D, $CF, $B2, $EC, $52, $37, $BC, $3E, $D0, $2C, $AA, $CF, $75, $FB, $54, $6E, $EE, $E4, $51, $BE, $BF, $55, $54, $9B, $25, $70, $38, $63, $A3, $3A, $78, $A4, $21, $77, $50, $5D, $54, $63, $D6, $C6, $66, $B9, $10, $E6, $FE, $24, $36, $76, $AF, $6E, $91, $0F, $A6, $44,
    $F5, $E9, $AE, $AF, $1E, $2B, $1B, $6D, $6E, $CC, $80, $D5, $22, $AA, $C9, $C7, $29, $AA, $C9, $DC, $E7, $A6, $89, $EA, $0F, $26, $F3, $AD, $D4, $95, $39, $3E, $AE, $1D, $BF, $A1, $7A, $2D, $7A, $64, $E2, $48, $3D, $D2, $5D, $54, $1F, $9C, $CC, $EF, $F0, $DE, $4F, $CF, $8E, $A8, $0E, $FD, $3E, $06, $F5, $9D, $C5, $AD, $A3, $7A, $B0, $49, $D0, $8B, $32, $C7, $91, $4E, $54, $1E,
    $E4, $FE, $BC, $7A, $AF, $B9, $AA, $7A, $42, $EF, $D8, $F6, $C9, $47, $3C, $BB, $1F, $38, $3B, $A2, $9A, $ED, $C6, $87, $57, $B6, $3D, $AE, $1E, $68, $9E, $69, $2B, $99, $17, $07, $1C, $59, $36, $B9, $E2, $FD, $D5, $7B, $AB, $2B, $BB, $8B, $EA, $77, $43, $78, $B1, $7A, $CF, $96, $9E, $15, $51, $8D, $3D, $2F, $6F, $32, $DB, $3D, $93, $51, $7D, $36, $FB, $EF, $ED, $8D, $63, $AC,
    $78, $2B, $3E, $7B, $9A, $3B, $E5, $39, $E0, $9F, $54, $2F, $F5, $17, $76, $11, $D2, $15, $4F, $C7, $E7, $66, $2F, $17, $1D, $D7, $3D, $F3, $D8, $CA, $B3, $21, $AA, $4B, $5A, $5C, $56, $1F, $9D, $7C, $3E, $10, $DB, $97, $1F, $6E, $A8, $43, $7F, $16, $EF, $0C, $BE, $3D, $D9, $FB, $AA, $4A, $12, $D7, $F4, $68, $F8, $45, $17, $41, $BD, $B7, $B8, $80, $7D, $7D, $E2, $22, $78, $7C,
    $D9, $59, $10, $D5, $95, $75, $77, $AC, $2B, $6E, $C9, $03, $75, $67, $D6, $FB, $57, $D5, $47, $00, $71, $B5, $9F, $2F, $46, $5A, $5E, $73, $4B, $78, $FF, $D4, $15, $78, $27, $9C, $98, $57, $3C, $66, $BD, $A6, $F3, $D5, $FE, $4C, $9C, $CD, $DB, $CF, $EF, $DA, $3E, $71, $D8, $69, $1A, $B4, $5E, $47, $F5, $DA, $5D, $BB, $76, $C5, $93, $F4, $3B, $D9, $EF, $AE, $C5, $9D, $0C, $EC,
    $BC, $67, $B3, $E7, $00, $AB, $C2, $7B, $4F, $DC, $FA, $B9, $67, $6B, $56, $EF, $B1, $3C, $B1, $C3, $F6, $E1, $2F, $7F, $E3, $48, $E5, $8C, $54, $8A, $23, $8C, $D7, $A6, $F3, $B9, $3C, $84, $57, $E6, $25, $D7, $8F, $57, $F3, $08, $75, $24, $5E, $D6, $DD, $3B, $F5, $62, $60, $E2, $99, $F7, $29, $8D, $EA, $A9, $7E, $BE, $DA, $18, $D5, $AA, $C9, $47, $72, $E9, $CB, $93, $D3, $4E,
    $CE, $EE, $DD, $FA, $A4, $B9, $97, $BE, $1D, $C6, $B3, $03, $C7, $68, $17, $7F, $22, $89, $29, $73, $7E, $3B, $D9, $39, $E7, $5B, $E1, $E4, $43, $C9, $59, $18, $D5, $A1, $63, $95, $91, $1E, $9F, $72, $24, $2D, $FD, $E3, $78, $35, $2F, $F9, $C4, $25, $C2, $EB, $8D, $47, $E3, $F4, $CA, $7B, $B7, $DC, $7D, $5E, $37, $67, $FF, $4B, $3A, $4C, $63, $DB, $2C, $3F, $C4, $47, $89, $6A,
    $DB, $F4, $0F, $4D, $07, $76, $DE, $B3, $E9, $93, $C0, $D2, $65, $F7, $ED, $DC, $F5, $E8, $2D, $75, $31, $9B, $FB, $99, $87, $76, $ED, $7A, $F2, $6F, $D6, $55, $EB, $61, $7A, $5F, $4F, $FE, $BC, $B4, $76, $F2, $31, $D8, $29, $B1, $30, $74, $7D, $A3, $D7, $13, $57, $55, $EF, $B0, $67, $45, $FF, $E4, $43, $C0, $DE, $AA, $AC, $52, $7C, $12, $78, $EB, $2C, $AC, $D7, $DE, $C9, $73,
    $FD, $6C, $D8, $99, $7F, $98, $63, $65, $AF, $B7, $6B, $DF, $5B, $9B, $57, $F5, $A5, $FD, $5F, $CA, $0E, $5C, $C7, $4F, $F7, $0B, $50, $0B, $56, $5D, $FE, $FD, $66, $5F, $1B, $38, $9D, $95, $F5, $B7, $C5, $F1, $FA, $AD, $23, $8B, $7B, $1A, $D5, $C9, $93, $C8, $2D, $A7, $7B, $95, $8A, $53, $D8, $E1, $59, $7D, $45, $70, $C1, $C1, $26, $09, $B7, $7B, $17, $D5, $B1, $D3, $BF, $FF,
    $E7, $51, $FD, $C1, $BC, $64, $76, $DD, $F8, $9F, $BD, $8F, $6A, $B2, $61, $FB, $2F, $C6, $C3, $BB, $7B, $EF, $9A, $85, $95, $5B, $B7, $E5, $DE, $9B, $97, $26, $B3, $6F, $B0, $7C, $D7, $96, $2D, $73, $13, $00, $00, $00, $00, $00, $E0, $13, $AE, $74, $C5, $BD, $3B, $5F, $4A, $C5, $A1, $A7, $CA, $C7, $42, $38, $FA, $4F, $67, $52, $89, $E6, $54, $BF, $BA, $F9, $F1, $DD, $D4, $E7,
    $87, $F0, $FE, $F5, $3D, $2B, $FE, $4D, $33, $FB, $83, $DD, $FA, $8B, $A6, $76, $2D, $A8, $FE, $29, $B7, $AF, $FB, $39, $5D, $50, $F9, $24, $C9, $2C, $27, $C1, $F9, $71, $B5, $D5, $71, $2F, $5C, $1F, $8E, $5D, $D8, $7A, $E8, $9A, $6D, $3F, $3F, $72, $E8, $99, $CB, $1A, $07, $DC, $18, $4E, $5E, $54, $1B, $D5, $87, $B7, $6C, $79, $6C, $46, $51, $3D, $D8, $F4, $DD, $B9, $39, $DB,
    $0E, $3E, $76, $3A, $5F, $0B, $E9, $0F, $E1, $7B, $5D, $8D, $3F, $B4, $64, $B0, $65, $CD, $9E, $77, $32, $84, $E3, $2B, $5A, $4D, $F9, $A3, $CA, $0A, $3F, $51, $3F, $24, $7E, $E7, $F7, $27, $B5, $51, $ED, $AB, $FE, $DB, $9B, $A8, $3E, $13, $BF, $AA, $75, $1A, $8F, $27, $4B, $42, $E8, $3C, $FB, $54, $72, $E7, $D1, $FC, $1D, $8B, $C7, $5B, $AD, $EE, $AA, $E3, $21, $BC, $DB, $EA,
    $A3, $4F, $3F, $AC, $EE, $D8, $75, $EF, $92, $AE, $19, $0F, $E1, $95, $39, $3D, $8A, $EA, $1D, $5B, $F2, $5A, $5E, $17, $D5, $B1, $50, $24, $55, $38, $8D, $51, $FD, $74, $E7, $63, $EF, $AA, $C4, $E5, $E5, $56, $23, $7C, $BA, $CD, $B7, $76, $17, $3C, $B3, $2C, $6F, $52, $1B, $6E, $AA, $AD, $E0, $D9, $96, $3A, $DC, $9F, $F4, $28, $AA, $D5, $E3, $72, $6D, $54, $E3, $47, $08, $C3,
    $F6, $D3, $1A, $D5, $2E, $3E, $36, $B5, $E9, $53, $D9, $EA, $2F, $FA, $7D, $9B, $EF, $E5, $DD, $D3, $EA, $9B, $DA, $53, $86, $D7, $BE, $F6, $FD, $62, $43, $A3, $85, $DE, $47, $75, $D9, $F1, $5E, $66, $C2, $E9, $75, $54, $0B, $DF, $6A, $FA, $1D, $BD, $8A, $57, $B2, $20, $B5, $7E, $C1, $78, $D1, $FB, $21, $7C, $50, $73, $7E, $DE, $90, $AD, $EF, $70, $72, $8A, $A3, $9A, $DC, $52,
    $D7, $E8, $FA, $14, $5B, $DE, $A2, $81, $62, $0B, $F3, $6F, $7D, $F2, $A5, $7F, $7F, $BF, $5D, $54, $E3, $FB, $D0, $4F, $B5, $1A, $B8, $F4, $F7, $0D, $55, $F5, $D7, $21, $BC, $99, $7E, $84, $A8, $2E, $F9, $D2, $75, $A5, $E9, $A3, $BA, $F4, $F4, $1E, $57, $37, $74, $D5, $8C, $EB, $8B, $E3, $AD, $BF, $F9, $58, $F5, $42, $56, $59, $5B, $BC, $DD, $76, $61, $4C, $04, $B1, $B1, $E1,
    $40, $7C, $4D, $32, $F3, $A8, $5E, $91, $95, $E8, $97, $A5, $69, $A3, $7A, $67, $76, $16, $2D, $9D, $BE, $A8, $7E, $2F, $FC, $AE, $F3, $91, $CF, $C9, $2E, $9C, $AE, $EC, $4F, $9F, $6D, $1B, $D5, $4B, $5A, $BE, $88, $BD, $21, $3B, $15, $1F, $5A, $5E, $DB, $EF, $DB, $D9, $4D, $48, $FA, $11, $A2, $7A, $28, $6E, $E3, $EB, $DA, $46, $B5, $D4, $BF, $72, $5B, $8B, $46, $3C, $A7, $E8,
    $11, $C0, $D6, $6A, $0A, $A2, $CE, $EE, $9C, $42, $F8, $4E, $92, $37, $7D, $69, $13, $D5, $F4, $58, $8B, $DC, $39, $5F, $88, $DF, $E2, $FD, $CB, $72, $B9, $7C, $E9, $94, $02, $8C, $35, $39, $37, $77, $13, $D5, $93, $4D, $5E, $D6, $AF, $8B, $6A, $7E, $E1, $72, $E2, $DA, $D3, $16, $D4, $91, $93, $D5, $CF, $43, $77, $78, $63, $19, $C2, $B1, $CF, $FF, $F9, $8B, $ED, $8F, $00, $79,
    $32, $CA, $26, $BD, $17, $4F, $BC, $A7, $7D, $70, $B2, $E7, $EA, $66, $95, $A8, $9B, $A8, $6E, $0F, $A1, $21, $A5, $44, $63, $54, $DF, $1B, $A9, $CF, $DC, $58, $BA, $68, $D5, $B4, $F3, $1E, $1C, $6A, $7F, $E3, $B0, $6C, $55, $D3, $FB, $B5, $6B, $7F, $19, $C2, $8F, $BB, $B8, $E5, $48, $0F, $15, $89, $6F, $DA, $47, $F5, $8B, $D9, $28, $83, $4D, $AF, $36, $1A, $A3, $FA, $17, $CD,
    $BE, $6A, $DC, $4D, $54, $4B, $8F, $9F, $3C, $7C, $55, $FB, $B3, $D5, $39, $6B, $17, $35, $9E, $A4, $B3, $8B, $E4, $97, $DB, $3F, $2B, $E8, $7F, $35, $AB, $E1, $17, $B5, $1E, $3E, $37, $0B, $DE, $F8, $A6, $56, $FB, $F4, $D7, $BA, $A8, $AC, $7D, $9B, $5F, $7C, $E1, $C1, $25, $7D, $C3, $C3, $ED, $92, $76, $5E, $D6, $78, $FB, $94, $97, $72, $B8, $6A, $4A, $51, $FE, $A1, $59, $AE,
    $BD, $53, $70, $65, $55, $2F, $7F, $11, $FD, $A1, $B6, $A3, $C4, $4F, $B2, $E7, $07, $BC, $16, $F2, $14, $39, $EF, $37, $1F, $F6, $78, $18, $EB, $F5, $B9, $F1, $BC, $D0, $F9, $35, $F0, $A3, $CD, $5A, $50, $9D, $FA, $A8, $16, $0D, $1C, $0E, $B4, $1D, $E7, $BE, $38, $4A, $9B, $67, $24, $9B, $E3, $F0, $93, $2D, $CF, $D8, $9D, $3F, $BC, $9B, $D2, $68, $AF, $CD, $DE, $B3, $EA, $CC,
    $8F, $6A, $FA, $41, $0C, $C9, $68, $ED, $CA, $5D, $52, $FB, $5C, $68, $C5, $C9, $F6, $4D, $75, $96, $C5, $E1, $5B, $5B, $5C, $97, $87, $B0, $B6, $E3, $E2, $4E, $69, $60, $DA, $A6, $15, $47, $6C, $99, $B8, $A6, $C3, $39, $3E, $D8, $EC, $29, $6A, $D3, $A8, $CE, $3D, $FC, $CC, $A6, $05, $3D, $3B, $02, $7C, $3E, $D6, $B3, $9A, $27, $A0, $4F, $35, $A4, $FD, $9B, $7F, $C3, $CD, $E7,
    $B7, $5D, $CC, $8D, $9B, $56, $F4, $E2, $8E, $B5, $B3, $A8, $C6, $66, $F4, $9D, $36, $F3, $8A, $49, $12, $96, $76, $56, $57, $AF, $7B, $37, $84, $BD, $8D, $4F, $6F, $D3, $95, $0B, $67, $10, $D5, $E4, $E2, $6D, $5B, $6B, $CE, $A8, $F3, $F3, $B5, $5A, $3E, $1B, $CF, $01, $E6, $2C, $98, $D0, $66, $AC, $EC, $0C, $34, $DE, $E9, $85, $C5, $A5, $A1, $C9, $05, $73, $8B, $23, $40, $7F,
    $6C, $22, $FE, $CD, $BA, $43, $CF, $C0, $5B, $8D, $59, $7E, $3A, $89, $6A, $C3, $B9, $74, $BA, $5B, $C6, $AE, $64, $57, $91, $EB, $7A, $7C, $B6, $CA, $CE, $AF, $3F, $EC, $F8, $B9, $42, $B3, $A7, $06, $2D, $8F, $AB, $31, $F3, $F3, $EB, $73, $1A, $7A, $D5, $E7, $62, $99, $49, $54, $8B, $6C, $0D, $35, $77, $DA, $77, $BF, $FF, $C1, $B6, $36, $B5, $23, $7D, $F8, $44, $18, $ED, $6F,
    $B9, $5A, $3D, $6E, $3C, $39, $98, $95, $EE, $73, $1D, $8F, $FD, $F3, $EC, $C6, $A2, $D4, $F1, $D9, $2A, $A6, $7E, $BE, $BB, $A1, $4F, $DD, $69, $67, $66, $51, $4D, $16, $BC, $13, $7E, $50, $73, $B6, $8A, $73, $BE, $B3, $F5, $F8, $B7, $B7, $79, $66, $9B, $8E, $77, $96, $CD, $B2, $73, $D9, $4D, $70, $E8, $3C, $07, $7D, $BC, $8D, $BD, $B6, $31, $AA, $CF, $ED, $DA, $F5, $42, $93,
    $A8, $CE, $CF, $6E, $70, $9F, $AF, $E9, $73, $4D, $5C, $B7, $DF, $F5, $22, $AA, $1B, $C3, $78, $CD, $E9, $EB, $A2, $69, $B2, $93, $DF, $D7, $2E, $B3, $E7, $68, $08, $AB, $7B, $19, $D4, $FE, $63, $5D, $E5, $0E, $98, $73, $A2, $31, $A7, $4F, $9B, $BF, $B1, $7E, $B5, $A1, $62, $FE, $73, $6D, $DE, $8E, $19, $47, $F5, $9C, $63, $75, $7B, $58, $E9, $3F, $C2, $64, $9A, $B5, $26, $2E,
    $8F, $25, $6C, $95, $DA, $7E, $E9, $C9, $30, $FE, $D0, $8A, $DE, $FD, $A5, $EC, $D1, $D0, $E6, $2F, $05, $4D, $7C, $25, $1B, $FF, $8E, $BA, $BB, $D0, $9B, $2B, $1A, $4B, $55, $FA, $D7, $37, $CF, $69, $3C, $CD, $3C, $FF, $D1, $A3, $7A, $F9, $B1, $F1, $9B, $1A, $8E, $65, $27, $6A, $53, $88, $9D, $3B, $3C, $3C, $F5, $39, $CE, $B5, $FF, $F6, $CA, $DD, $2D, $E3, $B6, $26, $BF, $B9,
    $EF, $55, $58, $2F, $0E, $5D, $66, $DE, $2B, $FD, $6E, $22, $F9, $EE, $CC, $F6, $8D, $86, $3F, $84, $CD, $28, $AA, $EB, $6F, $1F, $68, $F2, $E4, $E6, $95, $9A, $EE, $47, $42, $F8, $46, $17, $C7, $E9, $0B, $2E, $B9, $A4, $47, $41, $CD, $0E, $F9, $E1, $BF, $BA, $BB, $05, $5E, $DD, $78, $62, $EF, $42, $FA, $44, $08, $FF, $9D, $F6, $E2, $B8, $DA, $E0, $95, $F1, $ED, $B5, $C5, $7A,
    $B5, $9B, $3B, $A6, $5E, $1E, $54, $7F, $95, $55, $BC, $6E, $1B, $CF, $C7, $94, $BA, $FB, $66, $F4, $30, $E2, $BC, $BB, $B6, $1F, $0D, $E1, $83, $A9, $D7, $EE, $F1, $DD, $95, $4D, $BD, $89, $EA, $FC, $BA, $8D, $55, $0A, $E1, $ED, $D9, $08, $6A, $5F, $7C, $38, $D6, $FD, $E5, $6F, $7C, $46, $BA, $77, $26, $CB, $1B, $CE, $33, $31, $D4, $EC, $BA, $07, $A7, $FF, $13, $D0, $4C, $9D,
    $D3, $FE, $AF, $C7, $A7, $CE, $37, $C3, $F8, $86, $99, $4D, $76, $C5, $4C, $16, $77, $DB, $E1, $BD, $7F, $77, $6E, $6D, $AF, $53, $18, $D5, $24, $9D, $AD, $B7, $E9, $9E, $9C, $D9, $01, $FA, $E1, $2B, $7A, $55, $80, $3B, $2A, $AF, $13, $2E, $48, $00, $00, $00, $00, $00, $00, $00, $00, $00, $7A, $61, $ED, $93, $0F, $CD, $13, $85, $1E, $8B, $CD, $34, $7E, $2D, $43, $60, $8F, $FD,
    $55, $E8, $F2, $25, $7E, $3A, $10, $F3, $F3, $9C, $98, $23, $0E, $3D, $B6, $6D, $FC, $E8, $E5, $A2, $C0, $C7, $41, $A9, $AF, $CF, $C9, $AA, $E7, $9E, $0F, $E1, $0B, $A2, $D0, $6B, $2F, $35, $64, $93, $E3, $A3, $3B, $10, $C2, $7D, $A2, $D0, $6B, $BF, $0C, $E1, $01, $51, $E8, $B5, $23, $21, $3C, $2A, $0A, $BD, $F6, $41, $08, $FF, $22, $0A, $BD, $76, $7A, $73, $BD, $7E, $42, $A4,
    $A1, $CB, $5C, $E1, $74, $18, $D5, $BD, $C2, $D0, $63, $7D, $B5, $A9, $10, $E9, $89, $B9, $31, $E1, $81, $30, $F4, $58, $4C, $FA, $70, $44, $18, $7A, $2C, $26, $9A, $3D, $21, $0C, $3D, $96, $27, $9A, $15, $86, $1E, $5B, $D5, $CB, $EC, $40, $54, $8F, $AB, $31, $EB, $83, $30, $00, $70, $46, $3F, $06, $88, $FF, $5C, $5D, $4E, $FF, $90, $1C, $4C, $97, $76, $FF, $53, $37, $B3, $66,
    $C3, $66, $3A, $EB, $99, $16, $A2, $A1, $48, $BB, $E3, $98, $9B, $D2, $7B, $4A, $F3, $CA, $E9, $40, $BA, $B3, $B4, $A8, $9C, $0E, $27, $9B, $D3, $65, $71, $F2, $CD, $71, $D8, $70, $32, $96, $2C, $2F, $A7, $E5, $64, $4F, $72, $4E, $39, $BD, $2D, $FB, $99, $5B, $4E, $77, $24, $FB, $4B, $83, $71, $58, $FE, $53, $4E, $EE, $29, $0D, $C5, $09, $D6, $C7, $09, $6E, $4A, $77, $A7, $0B,
    $CB, $E9, $2D, $E9, $D6, $64, $30, $CE, $FA, $78, $3A, $3F, $CE, $7A, $7D, $BA, $A4, $9C, $FE, $2C, $D9, $98, $2C, $8B, $5D, $BB, $63, $D7, $81, $64, $5D, $29, $FF, $C9, $27, $1F, $29, $16, $BB, $3A, $DD, $9C, $0E, $C5, $9E, $F9, $3A, $7C, $98, $F5, $CC, $46, $89, $5B, $62, $69, $5C, $D0, $F1, $D8, $B5, $29, $5D, $17, $8B, $7B, $20, $5B, $7A, $B6, $A0, $35, $E9, $58, $92, $4D,
    $70, $69, $36, $4A, $5E, $88, $9D, $A5, $C5, $E5, $F4, $EA, $6C, $B1, $8B, $E2, $3C, $37, $C6, $C2, $8F, $24, $5B, $E3, $CF, $A2, $74, $63, $B2, $24, $CE, $25, $5F, $EC, $3B, $D9, $AA, $64, $F3, $DC, $90, $EE, $89, $D3, $5D, $9D, $15, $30, $9B, $EE, $D5, $2C, $2A, $CB, $E2, $B0, $B1, $38, $6C, $24, $9B, $59, $5E, $96, $7C, $9E, $63, $D9, $04, $4B, $E2, $04, $63, $C9, $E2, $18,
    $82, $BC, $B8, $6F, $14, $E5, $DC, $97, $0D, $CB, $BA, $46, $8B, $02, $8E, $24, $AF, $C5, $E5, $8D, $65, $73, $59, $12, $8B, $54, $E9, $99, $8F, $F9, $BF, $59, $59, $F2, $55, $C9, $C3, $3A, $5A, $14, $30, $29, $BA, $62, $4A, $DA, $E5, $71, $9E, $F9, $04, $37, $65, $91, $58, $18, $67, $9D, $4F, $F7, $46, $B1, $B6, $A3, $45, $57, $39, $8B, $75, $36, $E6, $CD, $D9, $32, $06, $CA,
    $E9, $1F, $93, $7C, $C5, $06, $D2, $3C, $58, $6F, $14, $C5, $DD, $57, $5D, $CD, $D7, $92, $7C, $33, $E6, $D3, $ED, $28, $7E, $06, $D2, $3C, $E4, $D7, $14, $31, $2B, $17, $AB, $99, $14, $13, $AC, $CE, $A2, $3B, $14, $27, $1F, $8B, $6B, $94, $54, $87, $1D, $8F, $D3, $0D, $A6, $AF, $C5, $05, $8D, $16, $63, $8E, $54, $27, $D8, $1D, $B7, $D8, $6F, $B2, $42, $E4, $B5, $AE, $B2, $35,
    $F3, $02, $8E, $16, $91, $D8, $51, $5D, $DB, $FC, $67, $75, $B1, $F4, $AB, $D3, $83, $31, $E4, $F7, $67, $A1, $EB, $8F, $CB, $AB, $94, $7A, $7D, $9A, $07, $72, $7F, $69, $A0, $FC, $49, $39, $BE, $24, $C9, $FB, $B1, $42, $97, $B3, $FA, $99, $47, $7E, $73, $51, $A5, $5E, $8B, $1B, $60, $B8, $08, $E4, $6D, $59, $57, $7F, $AC, $8A, $F9, $B0, $DB, $B3, $49, $16, $C5, $51, $B6, $16,
    $FB, $E6, $FE, $B8, $DF, $FE, $A1, $D8, $1C, $49, $B6, $01, $96, $4C, $EC, $7F, $87, $8A, $5A, $FE, $D9, $6C, $C3, $0D, $C4, $C8, $E7, $7B, $F8, $40, $5A, $A9, $91, $F9, $EE, $7B, $4B, $B6, $D8, $C1, $58, $DD, $D6, $A7, $03, $B1, $F6, $E4, $73, $79, $A3, $58, $D0, $87, $D9, $28, $F3, $E3, $A6, $DA, $1F, $0B, $F8, $D9, $6C, $5F, $19, $8C, $5D, $F7, $C4, $B9, $BC, $51, $6C, $E9,
    $1F, $15, $95, $36, $29, $B6, $F4, $48, $B6, $BC, $E5, $71, $94, $CA, $A1, $64, $4F, $B1, $F9, $37, $16, $3F, $95, $CA, $90, $97, $7A, $B8, $DA, $55, $19, $25, $DF, $EE, $FB, $8A, $AA, $BF, $3A, $2B, $E0, $50, $5C, $7A, $BE, $84, $D5, $59, $45, $19, $8A, $3B, $DE, $6B, $31, $3C, $3B, $8A, $1A, $39, $5A, $FC, $0C, $17, $3F, $E5, $6C, $6D, $F3, $3D, $35, $DF, $0D, $0F, $15, $BB,
    $EF, $81, $A2, $0A, $8F, $16, $7B, $EA, $81, $22, $9E, $E5, $A2, $2B, $29, $7E, $86, $8B, $E5, $FD, $2C, $2B, $52, $BE, $F4, $DD, $C5, $AE, $B6, $BE, $D8, $57, $F2, $AE, $43, $C5, $0E, $54, $2E, $8A, $BB, $28, $5B, $D0, $92, $B8, $23, $E4, $C7, $82, $1D, $45, $B0, $46, $8B, $31, $07, $D2, $BC, $EB, $8F, $49, $3E, $CA, $81, $62, $D6, $1F, $26, $F9, $91, $EF, $E9, $22, $4A, $57,
    $67, $FB, $CA, $E2, $38, $2C, $9F, $E0, $FF, $92, $CA, $61, $AD, $72, $64, $C8, $77, $A0, $0F, $93, $DD, $C5, $74, $07, $D3, $7C, $D6, $79, $08, $D6, $14, $EB, $FE, $46, $31, $DD, $BE, $A2, $67, $52, $4C, $97, $14, $3D, $0F, $14, $A5, $FE, $9F, $62, $9E, $BF, $29, $0E, $33, $23, $C5, $B0, $E1, $6A, $01, $0F, $16, $B3, $CE, $CB, $39, $5C, $CC, $65, $6D, $51, $EB, $46, $8A, $7D,
    $73, $B8, $5A, $89, $62, $AD, $73, $05, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $67, $B7, $74, $34, $D9, $93, $2C, $2F, $B7, $1D, $E5, $0F, $C9, $FE,
    $D2, $C2, $BA, $51, $D2, $72, $B2, $3B, $5D, $5A, $FE, $A8, $4B, $DF, $97, $6C, $9C, $66, $E9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $7C, $D2, $A5, $FB, $92, $FD, $A5, $81, $72, $7A, $53, $7A, $30, $5D, $D8, $FD, $37, $F0, $D2, $1D, $C9, $3D, $A5, $A1, $72, $BA, $26, $DD, $93, $0C,
    $B5, $FF, $80, $DF, $48, $31, $E6, $DA, $74, $EB, $34, $63, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $03, $E9, $A6, $74, $67, $69, $5E, $B9,
    $DA, $95, $24, $7B, $92, $F3, $26, $BA, $86, $93, $8D, $C9, $05, $E5, $EC, $67, $6B, $F6, $53, $ED, $79, $71, $D6, $73, $B0, $9C, $FD, $6C, $CD, $7E, $AA, $3D, $EF, $CC, $FE, $B9, $B0, $9C, $0E, $A4, $FB, $4B, $F3, $CB, $69, $39, $1B, $76, $61, $B9, $6E, $41, $1F, $26, $3B, $4B, $8B, $CB, $E9, $D5, $E9, $E6, $34, $FB, $19, $4C, $C7, $92, $25, $E5, $AC, $E7, $F1, $34, $FB, $19,
    $CD, $26, $58, $5E, $4E, $97, $67, $CB, $CF, $BA, $46, $AA, $3D, $D7, $A7, $CB, $CA, $D9, $78, $AF, $C5, $9E, $3B, $8A, $9E, $9B, $B2, $25, $CC, $2B, $A7, $AB, $F3, $9F, $C9, $52, $4F, $59, $5E, $36, $6C, $7D, $3A, $14, $0B, $91, $24, $6B, $CB, $1F, $EF, $8D, $F3, $B5, $EC, $9F, $73, $CB, $67, $61, $AD, $4B, $92, $FD, $A5, $45, $E5, $F4, $FE, $6C, $DB, $F6, $C5, $3A, $B1, $2E,
    $76, $25, $59, $CD, $BA, $A8, $6C, $9F, $84, $8F, $C5, $5E, $5C, $CE, $76, $D8, $35, $1F, $D3, $1D, $F6, $FF, $01, $E2, $84, $10, $3C);

{$ENDIF}


var
  FontFileRootPath: U_String;
  FontInited: Boolean;

procedure InitSystemFont();
var
  stream: TCoreClassStream;
  fr: TFontRaster;
begin
{$IF Defined(LARGE_RASTER_FONT_Build_In) or Defined(SMALL_RASTER_FONT_Build_In)}
  stream := TCoreClassResourceStream.Create(HInstance, 'MemoryRasterFont', RT_RCDATA);
{$IFDEF initializationStatus}
  DoStatus('Load font from RC: "MemoryRasterFont"');
{$ENDIF initializationStatus}
{$ELSE}
  stream := TMemoryStream64.Create;

  if umlFileExists(umlCombineFileName(FontFileRootPath, 'MemoryRasterLargeFont.zFont')) then
    begin
      TMemoryStream64(stream).LoadFromFile(umlCombineFileName(FontFileRootPath, 'MemoryRasterLargeFont.zFont'));
{$IFDEF initializationStatus}
      DoStatus('Load font file %s', [umlCombineFileName(FontFileRootPath, 'MemoryRasterLargeFont.zFont').Text]);
{$ENDIF initializationStatus}
    end
  else if umlFileExists(umlCombineFileName(FontFileRootPath, 'MemoryRasterFont.zFont')) then
    begin
      TMemoryStream64(stream).LoadFromFile(umlCombineFileName(FontFileRootPath, 'MemoryRasterFont.zFont'));
{$IFDEF initializationStatus}
      DoStatus('Load font file %s', [umlCombineFileName(FontFileRootPath, 'MemoryRasterFont.zFont').Text]);
{$ENDIF initializationStatus}
    end
  else
    begin
      TMemoryStream64(stream).SetPointerWithProtectedMode(@C_LittleFontPackageBuffer[0], Length(C_LittleFontPackageBuffer));
{$IFDEF initializationStatus}
      DoStatus('Load font from LittleFontPackage.');
{$ENDIF initializationStatus}
    end;
{$ENDIF}
  stream.Position := 0;

  fr := TFontRaster.Create;
  fr.LoadFromStream(stream);
  DisposeObject(stream);

  SystemFont.V := fr;
end;

procedure Init_DefaultFont;
begin
  SystemFont := TAtomFontRaster.Create(nil);
{$IFDEF FPC}
  FontFileRootPath := umlCurrentPath;
{$ELSE FPC}
  FontFileRootPath := TPath.GetLibraryPath;
{$ENDIF FPC}
  FontInited := False;
end;

procedure Free_DefaultFont;
begin
  if FontInited then
    begin
      while SystemFont.V = nil do
          CheckThreadSynchronize(1);
      DisposeObject(SystemFont.V);
    end;

  DisposeObjectAndNil(SystemFont);
end;

function Wait_SystemFont_Init: TFontRaster;
begin
  if not FontInited then
    begin
      FontInited := True;
      InitSystemFont();
    end;
  while SystemFont.V = nil do
      CheckThreadSynchronize(1);
  Result := SystemFont.V;
end;

function font_raster_ComputeNearest_(const Sender: TRasterVertex; const Sampler: TMemoryRaster; const X, Y: TGeoFloat): TRColor;
var
  fr: TFontRaster;
  tu0, tv0: Integer;
begin
  fr := TFontRaster.PFontDrawState(Sender.UserData)^.Owner;
  tu0 := ClampInt(Trunc(TexCoordWrapRepeat(Sender.LockSamplerCoord, X) * (Sampler.Width0)), 0, Sampler.Width0i);
  tv0 := ClampInt(Trunc(TexCoordWrapRepeat(Sender.LockSamplerCoord, Y) * (Sampler.Height0)), 0, Sampler.Height0i);
  Result := RColor(0, 0, 0, fr.FBitRaster^[tu0 + tv0 * Sampler.Width]);
end;

function font_raster_ComputeLinear_(const Sender: TRasterVertex; const Sampler: TMemoryRaster; const X, Y: TGeoFloat): TRColor;
var
  fr: TFontRaster;
  fx, fy: TGeoFloat;
  i_x, i_y: Integer;
  i_x2, i_y2: Integer;
  delta_x, delta_y: TGeoFloat;
  k1, k2, k3, K4: TGeoFloat;
  c1, c2, c3, c4: byte;
  g: TGeoFloat;
begin
  fr := TFontRaster.PFontDrawState(Sender.UserData)^.Owner;

  fx := TexCoordWrapRepeat(Sender.LockSamplerCoord, X) * (Sampler.Width0);
  fy := TexCoordWrapRepeat(Sender.LockSamplerCoord, Y) * (Sampler.Height0);

  i_x := ClampInt(Trunc(fx), 0, Sampler.Width0i);
  i_y := ClampInt(Trunc(fy), 0, Sampler.Height0i);

  i_x2 := i_x + 1;
  i_y2 := i_y + 1;
  if (i_x2 > Sampler.Width0) or (i_y2 > Sampler.Height0) then
    begin
      Result := fr.FBitRaster^[i_x + i_y * Sampler.Width];
      exit;
    end;

  delta_x := Frac(fx);
  delta_y := Frac(fy);

  k1 := (1 - delta_x) * (1 - delta_y);
  k2 := delta_x * (1 - delta_y);
  k3 := delta_x * delta_y;
  K4 := (1 - delta_x) * delta_y;

  c1 := fr.FBitRaster^[i_x + i_y * Sampler.Width];
  c2 := fr.FBitRaster^[i_x2 + i_y * Sampler.Width];
  c3 := fr.FBitRaster^[i_x2 + i_y2 * Sampler.Width];
  c4 := fr.FBitRaster^[i_x + i_y2 * Sampler.Width];

  g := ((c1 / $FF) * k1) + ((c2 / $FF) * k2) + ((c3 / $FF) * k3) + ((c4 / $FF) * K4);

  if g < 0 then
      g := 0
  else if g > 1.0 then
      g := 1.0;

  Result := RColor(0, 0, 0, Round(g * $FF));
end;

procedure font_raster_ComputeBlend_(const Sender: TRasterVertex; const f, M: TRColor; var b: TRColor);
var
  c: TRColorEntry;
begin
  c.BGRA := TFontRaster.PFontDrawState(Sender.UserData)^.DestColor;
  c.A := TRColorEntry(f).A;
  Vertex_ComputeBlend(Sender, c.BGRA, M, b);
end;

constructor TFontRaster.Create;
var
  I: Integer;
begin
  inherited Create;
  FOnlyInstance := True;
  FFontTable := GetMemory((C_MAXWORD + 1) * SizeOf(TFontCharDefine));
  FCritical := TCritical.Create;
  FCharacterBoundBoxCache := GetMemory((C_MAXWORD + 1) * SizeOf(TCharacterBoundBox));
  SetLength(FFragRaster, C_MAXWORD + 1);
  for I := 0 to C_MAXWORD do
    begin
      FFontTable^[I] := C_WordDefine;
      FFragRaster[I] := nil;
      FCharacterBoundBoxCache^[I].Cache := False;
      FCharacterBoundBoxCache^[I].Box := Rect(0, 0, 0, 0);
    end;
  FBitRaster := nil;
  FFontSize := 0;
  FActivtedWord := 0;
  FWidth := 0;
  FHeight := 0;
  X_Spacing := 0;
  Y_Spacing := 0;
  FFontInfo := '';
end;

constructor TFontRaster.Create(ShareFont: TFontRaster);
begin
  inherited Create;
  FOnlyInstance := False;
  FFontTable := ShareFont.FFontTable;
  FCritical := ShareFont.FCritical;
  FCharacterBoundBoxCache := ShareFont.FCharacterBoundBoxCache;
  SetLength(FFragRaster, 0);
  FBitRaster := ShareFont.FBitRaster;
  FFontSize := ShareFont.FFontSize;
  FActivtedWord := ShareFont.FActivtedWord;
  FWidth := ShareFont.FWidth;
  FHeight := ShareFont.FHeight;
  X_Spacing := 0;
  Y_Spacing := 0;
  FFontInfo := ShareFont.FFontInfo;
end;

destructor TFontRaster.Destroy;
begin
  Clear;
  if FOnlyInstance then
    begin
      DisposeObject(FCritical);
      FreeMemory(FFontTable);
      FreeMemory(FCharacterBoundBoxCache);
      SetLength(FFragRaster, 0);
    end;
  inherited Destroy;
end;

function TFontRaster.FragRasterIsNull(c: TFontRasterChar): Boolean;
begin
  Result := FFragRaster[Word(c)] = nil;
end;

procedure TFontRaster.Add(c: TFontRasterChar; raster: TMemoryRaster);
begin
  Remove(c);
  FFragRaster[Word(c)] := raster;
end;

procedure TFontRaster.Remove(c: TFontRasterChar);
var
  I: Word;
begin
  I := Word(c);
  if FOnlyInstance then
    begin
      FFontTable^[I] := C_WordDefine;
      FCritical.Acquire;
      FCharacterBoundBoxCache^[I].Cache := False;
      FCharacterBoundBoxCache^[I].Box := Rect(0, 0, 0, 0);
      FCritical.Release;
    end;
  if FFragRaster[I] <> nil then
    begin
      DisposeObject(FFragRaster[I]);
      FFragRaster[I] := nil;
    end;
end;

procedure TFontRaster.Clear;
var
  I: Integer;
begin
  if FOnlyInstance then
    begin
      FCritical.Acquire;
      for I := 0 to C_MAXWORD do
        begin
          FFontTable^[I] := C_WordDefine;
          if FFragRaster[I] <> nil then
            begin
              DisposeObject(FFragRaster[I]);
              FFragRaster[I] := nil;
            end;
          FCharacterBoundBoxCache^[I].Cache := False;
          FCharacterBoundBoxCache^[I].Box := Rect(0, 0, 0, 0);
        end;
      FCritical.Release;

      FreeMemory(FBitRaster);
      FBitRaster := nil;

      FActivtedWord := 0;
      FWidth := 0;
      FHeight := 0;
      FFontInfo := '';
    end;
end;

procedure TFontRaster.ClearFragRaster;
var
  I: Integer;
begin
  for I := 0 to C_MAXWORD do
    begin
      if FFragRaster[I] <> nil then
        begin
          DisposeObject(FFragRaster[I]);
          FFragRaster[I] := nil;
        end;
    end;
end;

procedure TFontRaster.Build(fontInfo_: TFontRasterString; fontSiz: Integer; Status_: Boolean);
var
  rHash: THashList;
  HashMapTable: array [0 .. C_MAXWORD] of PFontCharDefine;
  RP: TRectPacking;
  M5: TFontRasterString;
  HP: Pointer;
  I, X, Y: Integer;
  Rect_p: PRectPackData;
  fontchar_p: PFontCharDefine;
  raster: TMemoryRaster;
  r: TRect;
  fr, Fg, fb, FA: TGeoFloat;
begin
  if not FOnlyInstance then
      exit;

  if Status_ then
      DoStatus('build %s Hash...', [fontInfo_.Text]);

  rHash := THashList.CustomCreate(8192);
  rHash.AutoFreeData := False;

  RP := TRectPacking.Create;
  FCritical.Acquire;
  for I := 0 to C_MAXWORD do
    begin
      FCharacterBoundBoxCache^[I].Cache := False;
      FCharacterBoundBoxCache^[I].Box := Rect(0, 0, 0, 0);
      fontchar_p := @(FFontTable^[I]);
      fontchar_p^ := C_WordDefine;
      HashMapTable[I] := fontchar_p;
      raster := FFragRaster[I];
      if raster <> nil then
        begin
          M5 := umlMD5String(@raster.Bits^[0], raster.Width * raster.Height * SizeOf(TRColor));
          HP := rHash[M5];
          if HP = nil then
            begin
              rHash.Add(M5, fontchar_p, True);
              RP.Add(fontchar_p, raster, raster.BoundsRectV2);
            end
          else
              HashMapTable[I] := PFontCharDefine(HP);
        end;
    end;
  FCritical.Release;
  DisposeObject(rHash);

  if RP.Count > 0 then
    begin
      if Status_ then
          DoStatus('build %s space...', [fontInfo_.Text]);
      RP.Margins := 4;
      RP.Build(C_MAXWORD * 1024, C_MAXWORD * 1024);

      FActivtedWord := 0;
      FWidth := Round(RP.MaxWidth);
      FHeight := Round(RP.MaxHeight);

      FBitRaster := GetMemory(FWidth * FHeight);
      FillPtrByte(FBitRaster, FWidth * FHeight, 0);

      if Status_ then
          DoStatus('compress %s raster...', [fontInfo_.Text]);
      for I := 0 to RP.Count - 1 do
        begin
          Rect_p := RP[I];
          if Rect_p^.error then
            begin
              if Status_ then
                  DoStatus('wordRaster Build Error');
              Continue;
            end;
          fontchar_p := PFontCharDefine(Rect_p^.Data1);
          raster := TMemoryRaster(Rect_p^.Data2);

          r := Rect2Rect(Rect_p^.Rect);

          // set word info
          fontchar_p^.Activted := True;
          fontchar_p^.X := r.Left;
          fontchar_p^.Y := r.Top;
          fontchar_p^.w := r.Right - r.Left;
          fontchar_p^.h := r.Bottom - r.Top;

          // fill raster
          for Y := 0 to raster.Height - 1 do
            for X := 0 to raster.Width - 1 do
                FBitRaster^[(Y + r.Top) * FWidth + (X + r.Left)] := RColor2Gray(raster[X, Y]);

          inc(FActivtedWord);
        end;

      if Status_ then
          DoStatus('merge %s space...', [fontInfo_.Text]);
      for I := 0 to C_MAXWORD do
        if HashMapTable[I] <> @(FFontTable^[I]) then
            FFontTable^[I] := HashMapTable[I]^;
    end;

  DisposeObject(RP);
  FFontSize := fontSiz;
  FFontInfo := fontInfo_;
  if Status_ then
      DoStatus('build %s done.', [fontInfo_.Text]);
end;

function TFontRaster.ValidChar(c: TFontRasterChar): Boolean;
begin
  Result := FFontTable^[Word(c)].Activted;
end;

function TFontRaster.GetBox(c: TFontRasterChar): TRect;
begin
  with FFontTable^[Word(c)] do
    if Activted then
        Result := Rect(X, Y, X + w, Y + h)
    else
        Result := Rect(0, 0, 0, 0);
end;

function TFontRaster.ComputeBoundBox(c: TFontRasterChar): TRect;
var
  r, Box: TRect;
  MorphBin: TMorphBin;
  I, J: Integer;
begin
  FCritical.Acquire;
  if FCharacterBoundBoxCache^[Word(c)].Cache then
    begin
      Result := FCharacterBoundBoxCache^[Word(c)].Box;
    end
  else
    begin
      Result := Rect(0, 0, 0, 0);
      if ValidChar(c) then
        begin
          with FFontTable^[Word(c)] do
              r := Rect(X, Y, X + w, Y + h);

          MorphBin := TMorphBin.Create;
          MorphBin.SetSize(r.Right - r.Left + 1, r.Bottom - r.Top + 1);
          for J := 0 to MorphBin.Height - 1 do
            for I := 0 to MorphBin.Width - 1 do
                MorphBin[I, J] := FBitRaster^[(J + r.Top) * FWidth + (I + r.Left)] >= 50;
          Box := MorphBin.BoundsRect(True);
          DisposeObject(MorphBin);
          if (Box.Left < Box.Right) and (Box.Top < Box.Bottom) then
              Result := CalibrationRectInRect(Rect(r.Left + Box.Left - 1, r.Top + Box.Top - 1, r.Left + Box.Right + 2, r.Top + Box.Bottom + 2), Rect(0, 0, Width, Height));
        end;
      FCharacterBoundBoxCache^[Word(c)].Cache := True;
      FCharacterBoundBoxCache^[Word(c)].Box := Result;
    end;
  FCritical.Release;
end;

function TFontRaster.IsVisibled(c: TFontRasterChar): Boolean;
begin
  Result := RectArea(ComputeBoundBox(c)) > 0;
end;

procedure TFontRaster.Assign(source: TFontRaster);
begin
  Clear;
  FFontSize := source.FFontSize;
  FActivtedWord := source.FActivtedWord;
  FWidth := source.FWidth;
  FHeight := source.FHeight;
  FFontInfo := source.FFontInfo;
  FBitRaster := GetMemory(FWidth * FHeight);
  CopyPtr(@source.FBitRaster^[0], @FBitRaster^[0], FWidth * FHeight);
  CopyPtr(@source.FFontTable^[0], @FFontTable^[0], (C_MAXWORD + 1) * SizeOf(TFontCharDefine));
end;

procedure TFontRaster.LoadFromStream(stream: TCoreClassStream);
var
  m64: TMemoryStream64;
begin
  if not FOnlyInstance then
      exit;

  Clear;
  m64 := TMemoryStream64.Create;
  DecompressStream(stream, m64);
  m64.Position := 0;

  m64.read(FFontSize, 4);
  m64.read(FActivtedWord, 4);
  m64.read(FWidth, 4);
  m64.read(FHeight, 4);
  FBitRaster := GetMemory(FWidth * FHeight);
  m64.read(FBitRaster^[0], FWidth * FHeight);
  m64.read(FFontTable^[0], (C_MAXWORD + 1) * SizeOf(TFontCharDefine));
  FFontInfo := m64.ReadString;

  DisposeObject(m64);
end;

procedure TFontRaster.SaveToStream(stream: TCoreClassStream);
var
  m64: TMemoryStream64;
begin
  m64 := TMemoryStream64.CustomCreate(1024 * 1024);
  m64.write(FFontSize, 4);
  m64.write(FActivtedWord, 4);
  m64.write(FWidth, 4);
  m64.write(FHeight, 4);
  m64.write(FBitRaster^[0], FWidth * FHeight);
  m64.write(FFontTable^[0], (C_MAXWORD + 1) * SizeOf(TFontCharDefine));
  m64.WriteString(FFontInfo);

  MaxCompressStream(m64, stream);
  DisposeObject(m64);

  stream.Position := 0;
end;

procedure TFontRaster.LoadFromFile(filename: TPascalString);
var
  stream: TCoreClassStream;
begin
  stream := TCoreClassFileStream.Create(filename, fmOpenRead);
  try
      LoadFromStream(stream);
  except
  end;
  DisposeObject(stream);
end;

procedure TFontRaster.SaveToFile(filename: TPascalString);
var
  stream: TCoreClassStream;
begin
  stream := TCoreClassFileStream.Create(filename, fmCreate);
  try
      SaveToStream(stream);
  except
  end;
  DisposeObject(stream);
end;

function TFontRaster.BuildRaster(partitionLine: Boolean): TMemoryRaster;
var
  raster: TMemoryRaster;
  Y, X: Integer;
  FD: PFontCharDefine;
  r: TRect;
begin
  raster := NewRaster();
  raster.SetSize(FWidth, FHeight, RColor(0, 0, 0));
  for Y := 0 to FHeight - 1 do
    for X := 0 to FWidth - 1 do
        raster.PixelGray[X, Y] := FBitRaster^[Y * FWidth + X];

  if partitionLine then
    for X := 0 to C_MAXWORD do
      begin
        FD := @(FFontTable^[X]);
        r := Rect(FD^.X, FD^.Y, FD^.X + FD^.w, FD^.Y + FD^.h);
        raster.DrawRect(r, RColor($FF, 0, 0, 200));
      end;

  Result := raster;
end;

function TFontRaster.BuildMorphomatics(): TMorphomatics;
var
  I: Integer;
begin
  Result := TMorphomatics.Create;
  Result.SetSize(FWidth, FHeight);
  for I := 0 to FWidth * FHeight - 1 do
    if FBitRaster^[I] > 0 then
        Result.Bits^[I] := $FF / FBitRaster^[I]
    else
        Result.Bits^[I] := 0;
end;

procedure TFontRaster.ExportRaster(stream: TCoreClassStream; partitionLine: Boolean);
var
  raster: TMemoryRaster;
begin
  raster := BuildRaster(partitionLine);
  raster.SaveToStream(stream);
  DisposeObject(raster);
end;

procedure TFontRaster.ExportRaster(filename: TPascalString; partitionLine: Boolean);
var
  raster: TMemoryRaster;
begin
  raster := BuildRaster(partitionLine);
  raster.SaveToFile(filename);
  DisposeObject(raster);
end;

function TFontRaster.CharSize(const c: TFontRasterChar): TPoint;
begin
  with FFontTable^[Word(c)] do
      Result := Point(w, h);
end;

function TFontRaster.TextSize(const s: TFontRasterString; charVec2List: TVec2List): TVec2;
var
  I: Integer;
  c: TFontRasterChar;
  FD: PFontCharDefine;
  RP: TVec2;
  MH: byte;
begin
  Result := vec2(0, 0);
  RP := vec2(0, 0);
  MH := 0;
  for I := 1 to s.L do
    begin
      c := s[I];
      FD := @(FFontTable^[Word(c)]);
      if FD^.h > MH then
          MH := FD^.h;

      if c = #10 then
        begin
          RP[0] := 0;
          RP[1] := RP[1] + MH + 1 + Y_Spacing;
          MH := 0;
          Continue;
        end;

      if c = #9 then
        begin
          RP[0] := RP[0] + (FFontTable^[32].w + 1 + X_Spacing) * 2;
          Continue;
        end;

      if c = #13 then
          Continue;

      if not FD^.Activted then
          Continue;

      if charVec2List <> nil then
          charVec2List.Add(RP[0] + (FD^.w + 1) * 0.5, RP[1] + (FD^.h + 1) * 0.5);
      RP[0] := RP[0] + FD^.w + X_Spacing;
      Result[0] := Max(Result[0], RP[0]);
    end;
  Result[1] := RP[1] + MH + 1 + Y_Spacing;
end;

function TFontRaster.TextSize(const s: TFontRasterString): TVec2;
begin
  Result := TextSize(s, nil);
end;

function TFontRaster.TextWidth(const s: TFontRasterString): Word;
var
  V: TVec2;
begin
  V := TextSize(s);
  Result := Round(V[0]);
end;

function TFontRaster.TextHeight(const s: TFontRasterString): Word;
var
  V: TVec2;
begin
  V := TextSize(s);
  Result := Round(V[1]);
end;

function TFontRaster.ComputeDrawBoundBox(Text: TFontRasterString; dstVec, Axis: TVec2; Angle, Scale: TGeoFloat; var DrawCoordinate, BoundBoxCoordinate: TArrayV2R4): TVec2;
var
  I: Integer;
  c: TFontRasterChar;
  FD: PFontCharDefine;
  centVec: TVec2;
  s, d: TRectV2;
  r: TRect;
  vSiz: TVec2;
  wp: TDeflectionPolygon;
  vl: TVec2List;
  WI: Integer;
begin
  // compute rotate: also matrix transform
  vl := TVec2List.Create;
  vSiz := TextSize(Text, vl);
  wp := TDeflectionPolygon.Create;
  wp.Position := Vec2Mul(vSiz, Axis);
  for WI := 0 to vl.Count - 1 do
      wp.AddPoint(vl[WI]^);
  DisposeObject(vl);
  wp.Position := Vec2Add(dstVec, Vec2Mul(vSiz, Axis));
  wp.Angle := Angle;
  wp.Scale := Scale;
  WI := 0;

  try
    SetLength(DrawCoordinate, Text.L);
    SetLength(BoundBoxCoordinate, Text.L);
    for I := 1 to Text.L do
      begin
        c := Text[I];
        FD := @(FFontTable^[Word(c)]);

        if not FD^.Activted then
            Continue;
        if CharIn(c, [#10, #9, #13]) then
            Continue;

        // projection source
        s := RectV2(FD^.X, FD^.Y, FD^.X + FD^.w + 1, FD^.Y + FD^.h + 1);
        // projection target
        centVec := wp.Points[WI];
        d := RectV2(centVec, (FD^.w + 1) * Scale, (FD^.h + 1) * Scale);

        // save target box
        DrawCoordinate[I - 1] := TV2Rect4.Init(d, Angle);
        // save bounds
        r := ComputeBoundBox(c);
        if (r.Left < r.Right) and (r.Top < r.Bottom) then
            BoundBoxCoordinate[I - 1] := TV2R4.Init(r).Projection(s, d, 0, Angle)
        else
            BoundBoxCoordinate[I - 1] := TV2R4.Init();

        inc(WI);
      end;
  finally
      DisposeObject(wp);
  end;
  Result := vSiz;
end;

function TFontRaster.ComputeDrawBoundBox(Text: TFontRasterString; dstVec, Axis: TVec2; Angle, Scale: TGeoFloat; var DrawCoordinate: TArrayV2R4): TVec2;
var
  I: Integer;
  c: TFontRasterChar;
  FD: PFontCharDefine;
  centVec: TVec2;
  s, d: TRectV2;
  r: TRect;
  vSiz: TVec2;
  wp: TDeflectionPolygon;
  vl: TVec2List;
  WI: Integer;
begin
  // compute rotate: also matrix transform
  vl := TVec2List.Create;
  vSiz := TextSize(Text, vl);
  wp := TDeflectionPolygon.Create;
  wp.Position := Vec2Mul(vSiz, Axis);
  for WI := 0 to vl.Count - 1 do
      wp.AddPoint(vl[WI]^);
  DisposeObject(vl);
  wp.Position := Vec2Add(dstVec, Vec2Mul(vSiz, Axis));
  wp.Angle := Angle;
  wp.Scale := Scale;
  WI := 0;

  try
    SetLength(DrawCoordinate, Text.L);
    for I := 1 to Text.L do
      begin
        c := Text[I];
        FD := @(FFontTable^[Word(c)]);

        if not FD^.Activted then
            Continue;
        if CharIn(c, [#10, #9, #13]) then
            Continue;

        // projection source
        s := RectV2(FD^.X, FD^.Y, FD^.X + FD^.w + 1, FD^.Y + FD^.h + 1);
        // projection target
        centVec := wp.Points[WI];
        d := RectV2(centVec, (FD^.w + 1) * Scale, (FD^.h + 1) * Scale);

        // save target box
        DrawCoordinate[I - 1] := TV2Rect4.Init(d, Angle);

        inc(WI);
      end;
  finally
      DisposeObject(wp);
  end;
  Result := vSiz;
end;

function TFontRaster.ComputeDrawCoordinate(Text: TFontRasterString; X, Y: TGeoFloat; RotateVec: TVec2; Angle, siz: TGeoFloat; var DrawCoordinate, BoundBoxCoordinate: TArrayV2R4): TVec2;
var
  fSiz: TVec2;
  sc: TGeoFloat;
  fPt: TVec2;
begin
  fSiz := TextSize(Text);
  sc := siz / FontSize;
  fPt := Vec2Mul(Vec2Sub(fSiz, Vec2Mul(fSiz, sc)), RotateVec);
  Result := ComputeDrawBoundBox(Text, vec2(X - fPt[0], Y - fPt[1]), RotateVec, Angle, sc, DrawCoordinate, BoundBoxCoordinate);
end;

function TFontRaster.ComputeDrawCoordinate(Text: TFontRasterString; X, Y: TGeoFloat; RotateVec: TVec2; Angle, siz: TGeoFloat; var DrawCoordinate: TArrayV2R4): TVec2;
var
  fSiz: TVec2;
  sc: TGeoFloat;
  fPt: TVec2;
begin
  fSiz := TextSize(Text);
  sc := siz / FontSize;
  fPt := Vec2Mul(Vec2Sub(fSiz, Vec2Mul(fSiz, sc)), RotateVec);
  Result := ComputeDrawBoundBox(Text, vec2(X - fPt[0], Y - fPt[1]), RotateVec, Angle, sc, DrawCoordinate);
end;

procedure TFontRaster.DrawBit(fontRect: TRect; Dst: TMemoryRaster; DstRect: TV2Rect4; dstColor: TRColor; bilinear_sampling: Boolean; alpha: TGeoFloat);
var
  bak_userData: Pointer;
  DD: TFontDrawState;
  tmp: TMemoryRaster;
  VM: TRasterVertex;
begin
  // init raster
  DD.Owner := Self;
  DD.DestColor := dstColor;
  tmp := TMemoryRaster.Create;
  tmp.SetWorkMemory(nil, FWidth, FHeight);

  // reset blend parameter
  VM := Dst.Vertex;
  bak_userData := VM.UserData;
  VM.ComputeNearest := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeNearest_;
  VM.ComputeLinear := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeLinear_;
  VM.ComputeBlend := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeBlend_;
  VM.UserData := @DD;

  // vertex draw
  VM.DrawRect(TV2Rect4.Init(fontRect, 0), DstRect, tmp, bilinear_sampling, alpha);

  // restore blend parameter
  VM.ComputeBlend := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeBlend;
  VM.ComputeNearest := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeNearest;
  VM.ComputeLinear := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeLinear;
  VM.UserData := bak_userData;

  // free Sampler
  DisposeObject(tmp);
end;

function TFontRaster.Draw(Text: TFontRasterString; Dst: TMemoryRaster; dstVec: TVec2; dstColor: TRColor; bilinear_sampling: Boolean; alpha: TGeoFloat; Axis: TVec2; Angle, Scale: TGeoFloat; var DrawCoordinate: TArrayV2R4): TVec2;
var
  bak_userData: Pointer;
  DD: TFontDrawState;
  tmp: TMemoryRaster;
  VM: TRasterVertex;
  I: Integer;
  c: TFontRasterChar;
  FD: PFontCharDefine;
  centVec: TVec2;
  s, d: TRectV2;
  vSiz: TVec2;
  wp: TDeflectionPolygon;
  vl: TVec2List;
  WI: Integer;
begin
  // init raster
  DD.Owner := Self;
  DD.DestColor := dstColor;
  tmp := TMemoryRaster.Create;
  tmp.SetWorkMemory(nil, FWidth, FHeight);

  // reset blend parameter
  VM := Dst.Vertex;
  bak_userData := VM.UserData;
  VM.ComputeNearest := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeNearest_;
  VM.ComputeLinear := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeLinear_;
  VM.ComputeBlend := {$IFDEF FPC}@{$ENDIF FPC}font_raster_ComputeBlend_;
  VM.UserData := @DD;

  // compute rotate: also matrix transform
  vl := TVec2List.Create;
  vSiz := TextSize(Text, vl);
  wp := TDeflectionPolygon.Create;
  wp.Position := Vec2Mul(vSiz, Axis);
  for WI := 0 to vl.Count - 1 do
      wp.AddPoint(vl[WI]^);
  DisposeObject(vl);
  wp.Position := Vec2Add(dstVec, Vec2Mul(vSiz, Axis));
  wp.Angle := Angle;
  wp.Scale := Scale;
  WI := 0;

  // process vertex
  VM.BeginUpdate;
  try
    SetLength(DrawCoordinate, Text.L);
    for I := 1 to Text.L do
      begin
        c := Text[I];
        FD := @(FFontTable^[Word(c)]);

        if not FD^.Activted then
            Continue;
        if CharIn(c, [#10, #9, #13]) then
            Continue;

        // projection source
        s := RectV2(FD^.X, FD^.Y, FD^.X + FD^.w + 1, FD^.Y + FD^.h + 1);
        // projection target
        centVec := wp.Points[WI];
        d := RectV2(centVec, (FD^.w + 1) * Scale, (FD^.h + 1) * Scale);

        // save target box
        DrawCoordinate[I - 1] := TV2Rect4.Init(d, Angle);

        // vertex draw
        VM.DrawRect(TV2Rect4.Init(s, 0), DrawCoordinate[I - 1], tmp, bilinear_sampling, alpha);

        // next transform
        inc(WI);
      end;
  finally
    VM.EndUpdate;

    DisposeObject(wp);
    DisposeObject(tmp);

    // restore blend parameter
    VM.ComputeBlend := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeBlend;
    VM.ComputeNearest := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeNearest;
    VM.ComputeLinear := {$IFDEF FPC}@{$ENDIF FPC}Vertex_ComputeLinear;
    VM.UserData := bak_userData;
  end;
  Result := vSiz;
end;

function TFontRaster.Draw(Text: TFontRasterString; Dst: TMemoryRaster; dstVec: TVec2; dstColor: TRColor; bilinear_sampling: Boolean; alpha: TGeoFloat; Axis: TVec2; Angle, Scale: TGeoFloat): TVec2;
var
  DrawCoordinate: TArrayV2R4;
begin
  Result := Draw(Text, Dst, dstVec, dstColor, bilinear_sampling, alpha, Axis, Angle, Scale, DrawCoordinate);
end;

procedure TFontRaster.Draw(Text: TFontRasterString; Dst: TMemoryRaster; dstVec: TVec2; dstColor: TRColor);
begin
  Draw(Text, Dst, dstVec, dstColor, True, 1.0, vec2(0.5, 0.5), 0, 1);
end;

function TFontRaster.BuildText(Text: TFontRasterString; RotateVec: TVec2; Angle, alpha, siz: TGeoFloat; TextColor: TRColor;
  var DrawCoordinate, BoundBoxCoordinate: TArrayV2R4): TMemoryRaster;
var
  s: TVec2;
  r2: TRectV2;
  X, Y, w, h: Integer;
begin
  s := TextSize(Text);
  r2 := TV2R4.Init(RectV2(0, 0, s), Vec2Mul(s, RotateVec), Angle).Mul(siz / FontSize).BoundRect();
  X := Round(abs(r2[0, 0]));
  Y := Round(abs(r2[0, 1]));
  w := Round(RectWidth(r2));
  h := Round(RectHeight(r2));
  Result := NewRaster();
  Result.SetSize(w, h, RColorF(0, 0, 0, 0));
  DrawText(Text, Result, X, Y, RotateVec, Angle, alpha, siz, TextColor);
  ComputeDrawCoordinate(Text, X, Y, RotateVec, Angle, siz, DrawCoordinate, BoundBoxCoordinate);
end;

function TFontRaster.BuildText(Edge: Integer; Text: TFontRasterString; RotateVec: TVec2; Angle, alpha, siz: TGeoFloat; TextColor: TRColor; var DrawCoordinate, BoundBoxCoordinate: TArrayV2R4): TMemoryRaster;
var
  s: TVec2;
  r2: TRectV2;
  X, Y, w, h: Integer;
begin
  s := TextSize(Text);
  r2 := TV2R4.Init(RectV2(0, 0, s), Vec2Mul(s, RotateVec), Angle).Mul(siz / FontSize).BoundRect();
  X := Round(abs(r2[0, 0])) + Edge;
  Y := Round(abs(r2[0, 1])) + Edge;
  w := Round(RectWidth(r2)) + Edge * 2;
  h := Round(RectHeight(r2)) + Edge * 2;
  Result := NewRaster();
  Result.SetSize(w, h, RColorF(0, 0, 0, 0));
  DrawText(Text, Result, X, Y, RotateVec, Angle, alpha, siz, TextColor);
  ComputeDrawCoordinate(Text, X, Y, RotateVec, Angle, siz, DrawCoordinate, BoundBoxCoordinate);
end;

class function TFontRaster.BuildTextRaster(Random_: TRandom; PhysicsBox_: Boolean; X_Spacing_, Y_Spacing_: Integer; Margin_: TGeoFloat;
  Fonts: TFontRasterList; FontSize_, Angle_: TGeoFloat; Text_: TFontRasterArrayString; var OutputInfo: TFontTextInfos): TMemoryRaster;
type
  TInternal_ = record
    Font: TFontRaster;
    Text: TFontRasterString;
    Box, PhyBox: TArrayV2R4;
    raster: TRaster;
  end;

  PInternal_ = ^TInternal_;

  function rand(min_, max_: TGeoFloat): TGeoFloat;
  begin
    Result := umlRandomRangeS(Random_, min_, max_)
  end;

var
  RP: TRectPacking;
  I, J: Integer;
  p: PInternal_;
  tmpFont: TFontRaster;
  arry: array of TInternal_;
begin
  RP := TRectPacking.Create;
  SetLength(arry, Length(Text_));

  for I := 0 to Length(Text_) - 1 do
    begin
      p := @arry[I];
      p^.Font := Fonts[umlRandomRange(Random_, 0, Fonts.Count - 1)];
      p^.Text := Text_[I];

      tmpFont := TFontRaster.Create(p^.Font);
      tmpFont.X_Spacing := X_Spacing_;
      tmpFont.Y_Spacing := Y_Spacing_;

      p^.raster := tmpFont.BuildText(p^.Text, vec2(0.5, 0.5), rand(-Angle_, Angle_), 1, rand(FontSize_ - 10, FontSize_ + 10), RandomRColor, p^.Box, p^.PhyBox);
      DisposeObject(tmpFont);
      if PhysicsBox_ then
          p^.Box := p^.PhyBox;
      RP.Add(p, nil, p^.raster.BoundsRectV2);
    end;

  RP.Margins := Margin_;
  RP.Build();

  Result := NewRaster();
  Result.SetSizeF(RP.MaxWidth, RP.MaxHeight, RColor(0, 0, 0, 0));
  SetLength(OutputInfo, RP.Count);

  for I := 0 to RP.Count - 1 do
    begin
      p := RP[I]^.Data1;
      p^.raster.ProjectionTo(Result, p^.raster.BoundsRectV20, RP[I]^.Rect, False, 1.0);
      OutputInfo[I].Font := p^.Font;
      OutputInfo[I].Text := p^.Text;
      SetLength(OutputInfo[I].Box, Length(p^.Box));
      for J := 0 to Length(p^.Box) - 1 do
          OutputInfo[I].Box[J] := p^.Box[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      SetLength(OutputInfo[I].PhysicsBox, Length(p^.PhyBox));
      for J := 0 to Length(p^.PhyBox) - 1 do
          OutputInfo[I].PhysicsBox[J] := p^.PhyBox[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      DisposeObject(p^.raster);
    end;
  DisposeObject(RP);
  SetLength(arry, 0);
end;

class function TFontRaster.BuildTextRaster(Random_: TRandom; PhysicsBox_: Boolean; X_Spacing_, Y_Spacing_: Integer; Margin_: TGeoFloat;
  Fonts: TFontRasterList; FontSize_, Angle_: TGeoFloat; Text_: TFontRasterString; var OutputInfo: TFontTextInfos): TMemoryRaster;
type
  TInternal_ = record
    Font: TFontRaster;
    Text: TFontRasterString;
    Box, PhyBox: TArrayV2R4;
    raster: TRaster;
  end;

  PInternal_ = ^TInternal_;

  function rand(min_, max_: TGeoFloat): TGeoFloat;
  begin
    Result := umlRandomRangeS(Random_, min_, max_)
  end;

var
  RP: TRectPacking;
  I, J: Integer;
  p: PInternal_;
  tmpFont: TFontRaster;
  arry: array of TInternal_;
begin
  RP := TRectPacking.Create;
  SetLength(arry, Fonts.Count);

  for I := 0 to Fonts.Count - 1 do
    begin
      p := @arry[I];
      p^.Font := Fonts[I];
      p^.Text := Text_;

      tmpFont := TFontRaster.Create(p^.Font);
      tmpFont.X_Spacing := X_Spacing_;
      tmpFont.Y_Spacing := Y_Spacing_;

      p^.raster := tmpFont.BuildText(p^.Text, vec2(0.5, 0.5), rand(-Angle_, Angle_), 1, rand(FontSize_ - 10, FontSize_ + 10), RandomRColor, p^.Box, p^.PhyBox);
      DisposeObject(tmpFont);
      if PhysicsBox_ then
          p^.Box := p^.PhyBox;
      RP.Add(p, nil, p^.raster.BoundsRectV2);
    end;

  RP.Margins := Margin_;
  RP.Build();

  Result := NewRaster();
  Result.SetSizeF(RP.MaxWidth, RP.MaxHeight, RColor(0, 0, 0, 0));
  SetLength(OutputInfo, RP.Count);

  for I := 0 to RP.Count - 1 do
    begin
      p := RP[I]^.Data1;
      p^.raster.ProjectionTo(Result, p^.raster.BoundsRectV20, RP[I]^.Rect, False, 1.0);
      OutputInfo[I].Font := p^.Font;
      OutputInfo[I].Text := p^.Text;
      SetLength(OutputInfo[I].Box, Length(p^.Box));
      for J := 0 to Length(p^.Box) - 1 do
          OutputInfo[I].Box[J] := p^.Box[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      SetLength(OutputInfo[I].PhysicsBox, Length(p^.PhyBox));
      for J := 0 to Length(p^.PhyBox) - 1 do
          OutputInfo[I].PhysicsBox[J] := p^.PhyBox[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      DisposeObject(p^.raster);
    end;
  DisposeObject(RP);
  SetLength(arry, 0);
end;

class function TFontRaster.BuildTextRaster(PhysicsBox_: Boolean; X_Spacing_, Y_Spacing_: Integer; Margin_: TGeoFloat;
  Fonts: TFontRasterList; FontSize_, Angle_: TGeoFloat; Text_: TFontRasterString; color_: TRColor; var OutputInfo: TFontTextInfos): TMemoryRaster;
type
  TInternal_ = record
    Font: TFontRaster;
    Text: TFontRasterString;
    Box, PhyBox: TArrayV2R4;
    raster: TRaster;
  end;

  PInternal_ = ^TInternal_;

var
  RP: TRectPacking;
  I, J: Integer;
  p: PInternal_;
  tmpFont: TFontRaster;
  arry: array of TInternal_;
begin
  RP := TRectPacking.Create;
  SetLength(arry, Fonts.Count);

  for I := 0 to Fonts.Count - 1 do
    begin
      p := @arry[I];
      p^.Font := Fonts[I];
      p^.Text := Text_;

      tmpFont := TFontRaster.Create(p^.Font);
      tmpFont.X_Spacing := X_Spacing_;
      tmpFont.Y_Spacing := Y_Spacing_;
      p^.raster := tmpFont.BuildText(p^.Text, vec2(0.5, 0.5), Angle_, 1, FontSize_, color_, p^.Box, p^.PhyBox);
      DisposeObject(tmpFont);
      if PhysicsBox_ then
          p^.Box := p^.PhyBox;
      RP.Add(p, nil, p^.raster.BoundsRectV2);
    end;

  RP.Margins := Margin_;
  RP.Build();

  Result := NewRaster();
  Result.SetSizeF(RP.MaxWidth, RP.MaxHeight, RColor(0, 0, 0, 0));
  SetLength(OutputInfo, RP.Count);

  for I := 0 to RP.Count - 1 do
    begin
      p := RP[I]^.Data1;
      p^.raster.ProjectionTo(Result, p^.raster.BoundsRectV20, RP[I]^.Rect, False, 1.0);
      OutputInfo[I].Font := p^.Font;
      OutputInfo[I].Text := p^.Text;
      SetLength(OutputInfo[I].Box, Length(p^.Box));
      for J := 0 to Length(p^.Box) - 1 do
          OutputInfo[I].Box[J] := p^.Box[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      SetLength(OutputInfo[I].PhysicsBox, Length(p^.PhyBox));
      for J := 0 to Length(p^.PhyBox) - 1 do
          OutputInfo[I].PhysicsBox[J] := p^.PhyBox[J].Projection(p^.raster.BoundsRectV20, RP[I]^.Rect);
      DisposeObject(p^.raster);
    end;
  DisposeObject(RP);
  SetLength(arry, 0);
end;

function TFontRaster.ComputeTextSize(Text: TFontRasterString; RotateVec: TVec2; Angle, siz: TGeoFloat): TVec2;
var
  s: TVec2;
  r2: TRectV2;
begin
  s := TextSize(Text);
  r2 := TV2R4.Init(RectV2(0, 0, s), Vec2Mul(s, RotateVec), Angle).Mul(siz / FontSize).BoundRect();
  Result := RectSize(r2);
end;

function TFontRaster.ComputeTextConvexHull(Text: TFontRasterString; X, Y: TGeoFloat; RotateVec: TVec2; Angle, siz: TGeoFloat): TArrayVec2;
var
  DrawCoordinate, BoundBoxCoordinate: TArrayV2R4;
  L: TVec2List;
  I: Integer;
begin
  ComputeDrawCoordinate(Text, X, Y, RotateVec, Angle, siz, DrawCoordinate, BoundBoxCoordinate);
  L := TVec2List.Create;
  for I := 0 to Length(BoundBoxCoordinate) - 1 do
    if BoundBoxCoordinate[I].Area > 0 then
        L.Add(BoundBoxCoordinate[I]);
  L.ConvexHull;
  Result := L.BuildArray();
  DisposeObject(L);
end;

procedure TFontRaster.DrawText(Text: TFontRasterString; Dst: TMemoryRaster; X, Y: TGeoFloat; RotateVec: TVec2; Angle, alpha, siz: TGeoFloat; TextColor: TRColor);
var
  fSiz: TVec2;
  sc: TGeoFloat;
  fPt: TVec2;
begin
  fSiz := TextSize(Text);
  sc := siz / FontSize;
  fPt := Vec2Mul(Vec2Sub(fSiz, Vec2Mul(fSiz, sc)), RotateVec);
  Draw(Text, Dst, vec2(X - fPt[0], Y - fPt[1]), TextColor, True, alpha, RotateVec, Angle, sc);
end;

procedure TFontRaster.DrawText(Text: TFontRasterString; Dst: TMemoryRaster; X, Y: TGeoFloat; siz: TGeoFloat; TextColor: TRColor);
begin
  DrawText(Text, Dst, X, Y, vec2(0.5, 0.5), 0, 1, siz, TextColor);
end;

procedure TFontRaster.DrawText(Text: TFontRasterString; Dst: TMemoryRaster; X, Y: TGeoFloat; RotateVec: TVec2; Angle, alpha, siz: TGeoFloat; TextColor: TRColor; var DrawCoordinate: TArrayV2R4);
var
  fSiz: TVec2;
  sc: TGeoFloat;
  fPt: TVec2;
begin
  fSiz := TextSize(Text);
  sc := siz / FontSize;
  fPt := Vec2Mul(Vec2Sub(fSiz, Vec2Mul(fSiz, sc)), RotateVec);
  Draw(Text, Dst, vec2(X - fPt[0], Y - fPt[1]), TextColor, True, alpha, RotateVec, Angle, sc, DrawCoordinate);
end;

procedure TFontRaster.DrawText(Text: TFontRasterString; Dst: TMemoryRaster; X, Y: TGeoFloat; siz: TGeoFloat; TextColor: TRColor; var DrawCoordinate: TArrayV2R4);
begin
  DrawText(Text, Dst, X, Y, vec2(0.5, 0.5), 0, 1, siz, TextColor, DrawCoordinate);
end;
